效果图:

控制器(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>

yii遍历行下的每列数据(小1月考)的更多相关文章

  1. DataTable相关操作,筛选,取前N条数据,去重复行,获取指定列数据

    #region DataTable筛选,排序返回符合条件行组成的新DataTable或直接用DefaultView按条件返回      /// <summary>      /// Dat ...

  2. kendo ui grid控件在选择行时如何取得所选行的某一列数据

    $("#grid").kendoGrid({ dataSource: dataSrc, columns: [ { template: '#=material_id#', width ...

  3. Excel 一张表最多能装下多少行多少列数据?

    一个工作簿可以装下255张,那么每张工作表可以装下多少行多少列数据呢? 1.任意打开或新建一个Excel文档. 2.在文档中,找到其左上角的"文件"按钮,点击选择"选项& ...

  4. C/C++遍历二维数组,列优先(column-major)比行优先(row-major)慢,why?

    C/C++遍历二维数组,列优先(column-major)比行优先(row-major)慢,why? 简单粗暴的答案:存在Cache机制! 稍微啰嗦一点:CPU访问内存(读/写,遍历数组的话主要是读) ...

  5. 【面试总结-编程】多行两列数据,实现同key的value求和并输出

    一个文件,两列,多行. 第一列是字母,第二列是数字,同列数据之间通过空格分割. 统计首列字母相同的第二列之和. 样例输入: A 5 B 6 OO 7 A 6 A 2 OO 2 输出: A:13 B:6 ...

  6. Python学习随笔:使用xlwings设置和操作excel多行多列数据以及设置数据字体颜色填充色对齐方式的方法

    ☞ ░ 前往老猿Python博文目录 ░ 在前面老猿的文章中,<Python学习随笔:使用xlwings读取和操作Excel文件>.<Python学习随笔:使用xlwings读取和操 ...

  7. FPGA计算3行同列数据之和

    实验:FPGA计算3行同列数据之和 实验要求:PC机通过串口发送3行数据(一行有56个数据,3行共有56*3=168个数据)给FPGA,FPGA计算3行同一列数据的和,并将结果通过串口返回给上位机. ...

  8. SQL两列数据,行转列

    SQL中只有两列数据(字段1,字段2),将其相同字段1的行转列 转换前: 转换后: --测试数据 if not object_id(N'Tempdb..#T') is null drop table ...

  9. 视图合并、hash join连接列数据分布不均匀引发的惨案

    表大小 SQL> select count(*) from agent.TB_AGENT_INFO; COUNT(*) ---------- 1751 SQL> select count( ...

随机推荐

  1. 在MyEclipse下创建Java Web项目 入门(图文并茂)经典教程

    http://jijiaa12345.iteye.com/blog/1739754 在MyEclipse下创建Java Web项目 入门(图文并茂)经典教程 本文是一篇在Myeclipse下构建Jav ...

  2. Bluetooth Low Energy介绍

    目录 1. 介绍 2. 协议栈 3. 实现方案 3.1 硬件实现方案 3.2 软件实现方案 1. 介绍 Bluetooth low energy,也称BLE(低功耗蓝牙),在4.0规范中提出 BLE分 ...

  3. GCD的简单介绍

    一)GCD 的使用方式 dispatch_async(dispatch_queue_t queue, dispatch_block_t block); async表明运行方式 queue则是你把任务交 ...

  4. MySQL数据库表名、列名、别名区分大小写的问题

    MySQL在Linux下数据库名.表名.列名.别名大小写规则是这样的: 1.数据库名与表名是严格区分大小写的: 2.表的别名是严格区分大小写的: 3.列名与列的别名在所有的情况下均是忽略大小写的: 4 ...

  5. 答CsdnBlogger问-关于定时和后台服务问题

    本文来自http://blog.csdn.net/liuxian13183/ ,引用必须注明出处! 前段时间写了不少博客,在问答页面也陆续回答几十个问题,之后Csdn乙同学找到我,说要推荐我参加问答类 ...

  6. SQL Server存储机制二

    http://blog.csdn.net/ltylove2007/article/details/21084585 http://www.cnblogs.com/anding/p/3254674.ht ...

  7. mac下安装使用svn

    mac自带了svn服务端和客户端,所以只需要简单配置一下就可以使用   转自  http://blog.sina.com.cn/s/blog_677fb16e01011i6l.html 1.创建svn ...

  8. GCD Demo (先存起来自己看)

    // 原代码块一 dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ // 原代码块二 N ...

  9. SQLServer DMV Query

    1.DMV Query to identify all active SQL Server Sessions The query below identifies all currently acti ...

  10. JavaScript: JavaScript的简介和入门代码演示

    1.Javascript的发展历史介绍: javascript是指的实在网页上编写的编程语言,其主要是控制器html的动态显示效果.HTMl能带来的只是一些基本的页面的风格,而要展示的漂亮使用CSS, ...