• yii遍历行下的每列数据(小1月考)


    效果图:

    控制器(1种):

        //显示列表
        public function actionList()
        {
            //实例化对象
            $model= new Qiu();
            $country = Yii::$app->db;
            //查询数据
            $data = $country->createCommand("select * from qiu join region on qiu.region_id=region.region_id")->queryAll();
            $region_ids = $country->createCommand("select region_id from region")->queryAll();
            $region = $country->createCommand("select * from region")->queryAll();
            //遍历数组
            $ids = array();
            $names = array();
            $count = array();
            //遍历区域ID
            foreach ($region_ids as $key => $v)
            {
                $ids[$key] = $v['region_id'];
            }
            //print_r($ids);die;
            //遍历球队
            foreach ($ids as $key => $val)
            {
                $data =Qiu::find()->where(['region_id'=>$val])->asArray()->all();
                $count[]=count($data);
                $rows[$val] = $data;
            }
            //print_r($rows);die;
            //根据所有记录进行遍历,显示最多行数
            $ji =  max($count);
            $arr = array();
            //找出对应的球队
            for($i=0;$i<$ji;$i++)
            {
                foreach($rows as $key => $val)
                {
                    if(isset($val[$i]))
                    {
                        $arr[$i][$key] = $val[$i]['q_name'];
                    }
                    else
                    {
                        $arr[$i][$key] = '';
                    }
                }
            }
            //var_dump($arr);die;
            //分配数据
            return $this->render('list',['arr'=>$arr,'region'=>$region]);
        }

    (2种):
     
        public function actionList1()
       {
            //实例化模型层
            $region = new Region;
            $qiu = new Qiu;
            //取出区域表的iQiud和所有数据,队表数据
            $region_ids = $region->find()->select('region_id')->column();
            $areas = $region->find()->asArray()->all();
            $team = $qiu->find()->asArray()->all();
            
            $count = array();
            $info = array();
            foreach ($region_ids as $aid) {//1,2,3--6
                foreach ($team as $key=>$val) {
                    if($val['region_id'] == $aid){
                        $info[$aid][] = $val;
                        $count[]=count($info[$aid]);
                    }                
                }
            }
            //var_dump($count);die;    
            $con = max($count);
            $arr = array();
            for ($i=0; $i <$con ; $i++) {
                foreach ($info as $key => $val) {
                    if(isset($val[$i])){
                        $arr[$i][$key] = $val[$i]['q_name'];
                    } else {
                        $arr[$i][$key] = '';
                    }
                }
            }
            //var_dump($arr);die;
           return $this->render('list',['arr'=>$arr,'region'=>$areas]);
        }

    视图层:

             <table border="1">
             <!--一行区域-->
             <tr style="background:red;">
             <?php foreach ($region as $key => $v1) {?>
             <td><?php echo $v1['region_name']; ?></td>
             <?php }?>
             </tr>

             <!--每列球队-->
             <?php foreach ($arr as $key => $val) {?>
             <tr>    
             <?php foreach ($val as $key => $v) {?>
             <td><?php echo $v; ?></td>
             <?php } ?>
             </tr>    
             <?php } ?>
             </table>

  • 相关阅读:
    Python之路(第二十篇) subprocess模块
    Python之路(第十九篇)hashlib模块
    Python之路(第十八篇)shutil 模块、zipfile模块、configparser模块
    Python之路(第十六篇)xml模块、datetime模块
    Java性能优化之编程技巧总结
    Java消息中间件入门笔记
    Java线程池实现原理与技术(ThreadPoolExecutor、Executors)
    Java系统高并发之Redis后端缓存优化
    Java实现一个简单的加密解密方法
    Java实现动态修改Jar包内文件内容
  • 原文地址:https://www.cnblogs.com/shaohuixia/p/5364121.html
Copyright © 2020-2023  润新知