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>
yii遍历行下的每列数据(小1月考)的更多相关文章
- DataTable相关操作,筛选,取前N条数据,去重复行,获取指定列数据
#region DataTable筛选,排序返回符合条件行组成的新DataTable或直接用DefaultView按条件返回 /// <summary> /// Dat ...
- kendo ui grid控件在选择行时如何取得所选行的某一列数据
$("#grid").kendoGrid({ dataSource: dataSrc, columns: [ { template: '#=material_id#', width ...
- Excel 一张表最多能装下多少行多少列数据?
一个工作簿可以装下255张,那么每张工作表可以装下多少行多少列数据呢? 1.任意打开或新建一个Excel文档. 2.在文档中,找到其左上角的"文件"按钮,点击选择"选项& ...
- C/C++遍历二维数组,列优先(column-major)比行优先(row-major)慢,why?
C/C++遍历二维数组,列优先(column-major)比行优先(row-major)慢,why? 简单粗暴的答案:存在Cache机制! 稍微啰嗦一点:CPU访问内存(读/写,遍历数组的话主要是读) ...
- 【面试总结-编程】多行两列数据,实现同key的value求和并输出
一个文件,两列,多行. 第一列是字母,第二列是数字,同列数据之间通过空格分割. 统计首列字母相同的第二列之和. 样例输入: A 5 B 6 OO 7 A 6 A 2 OO 2 输出: A:13 B:6 ...
- Python学习随笔:使用xlwings设置和操作excel多行多列数据以及设置数据字体颜色填充色对齐方式的方法
☞ ░ 前往老猿Python博文目录 ░ 在前面老猿的文章中,<Python学习随笔:使用xlwings读取和操作Excel文件>.<Python学习随笔:使用xlwings读取和操 ...
- FPGA计算3行同列数据之和
实验:FPGA计算3行同列数据之和 实验要求:PC机通过串口发送3行数据(一行有56个数据,3行共有56*3=168个数据)给FPGA,FPGA计算3行同一列数据的和,并将结果通过串口返回给上位机. ...
- SQL两列数据,行转列
SQL中只有两列数据(字段1,字段2),将其相同字段1的行转列 转换前: 转换后: --测试数据 if not object_id(N'Tempdb..#T') is null drop table ...
- 视图合并、hash join连接列数据分布不均匀引发的惨案
表大小 SQL> select count(*) from agent.TB_AGENT_INFO; COUNT(*) ---------- 1751 SQL> select count( ...
随机推荐
- VS2013编译Qt5.6.0静态库(乌合之众)
获取qt5.6.0源码包 直接去www.qt.io下载就好了,这里就不详细说了. 这里是我已经编译好的** 链接:http://pan.baidu.com/s/1pLb6wVT 密码: ak7y ** ...
- Linq&Lumda---LINQ to DataSet的DataTable操作
1. DataTable读取列表 DataSet ds = new DataSet();// 省略ds的Fill代码DataTable products = ds.Tables["Produ ...
- 动态创建地图文档MXD并发布地图服务
原文:动态创建地图文档MXD并发布地图服务 1.动态创建MXD private bool CreateMxd(string MxdPath, string MxdName) { IMapDocumen ...
- ios UIPickerView 技巧集锦(包括循环滚动)
摘自: http://blog.csdn.net/ipromiseu/article/details/7436521 http://www.cnblogs.com/dabaopku/archive/2 ...
- iOS xib传值--定义方法传值
事件描述: 用xib创建了一个View,里面有按钮,有TableView.我需要将数据在初始化时传递进去,方便TableView来显示信息. 首先想到的是awakeFromNib这个方法(我以为是和V ...
- jquery的hover mouseover mouseout mouseenter mouseleave的区别
jquery的hover mouseover mouseout mouseenter mouseleave的区别 1.mouseover mouseout mouseover - 鼠标指针经过任何子元 ...
- 链表之求链表倒数第k个节点
题目描述:输入一个单向链表,输出该链表中倒数第k个节点,链表的倒数第0个节点为链表的尾指针. 最普遍的方法是,先统计单链表中结点的个数,然后再找到第(n-k)个结点.注意链表为空,k为0,k为1,k大 ...
- 使用for打印小九九
使用shell的for语法打印小九九 #!/bin/bash `;do `;do if [ $a -ge $b ];then echo -en "$a x $b = $(expr $a \* ...
- jboss\server\default\.\tmp 拒绝访问 axis2
下载axis2.war包. 下载jboss-4.2.3.GA.zip和jboss-5.0.1.GA.zip两个包并解压. 配置JDK后要配置JBOSS_HOME的环境变量,在Path中配置%JBOSS ...
- 内存映射文件mmap
1. mmap mmap可以把磁盘文件的一部分直接映射到内存,这样文件中的位置直接就有对应的内存地址,对文件的读写可以直接用指针而不需要read/write函数.使用内存映像文件的另一个优点是可以共 ...