Yii遍历行下每列数据的方法


Posted in PHP onOctober 17, 2016

本文实例讲述了Yii遍历行下每列数据的方法。分享给大家供大家参考,具体如下:

效果图如下:

Yii遍历行下每列数据的方法

控制器(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框架的PHP程序设计有所帮助。

PHP 相关文章推荐
php preg_match_all结合str_replace替换内容中所有img
Oct 11 PHP
MySql 按时间段查询数据方法(实例说明)
Nov 02 PHP
php表单转换textarea换行符的方法
Sep 10 PHP
php 求质素(素数) 的实现代码
Apr 12 PHP
PHP中通过语义URL防止网站被攻击的方法分享
Sep 08 PHP
PHP的error_reporting错误级别变量对照表
Jul 08 PHP
PHP原生函数一定好吗?
Dec 08 PHP
PHP计算加权平均数的方法
Jul 16 PHP
分享五个PHP7性能优化提升技巧
Dec 07 PHP
PHP模拟http请求的方法详解
Nov 09 PHP
thinkPHP+ajax实现统计页面pv浏览量的方法
Mar 15 PHP
phpquery中文手册
Mar 18 PHP
PHP+mysql+ajax轻量级聊天室实现方法详解
Oct 17 #PHP
php实现跨域提交form表单的方法【2种方法】
Oct 17 #PHP
php性能分析之php-fpm慢执行日志slow log用法浅析
Oct 17 #PHP
详解PHP原生DOM对象操作XML的方法
Oct 17 #PHP
php排序算法实例分析
Oct 17 #PHP
基于thinkPHP框架实现留言板的方法
Oct 17 #PHP
php并发加锁示例
Oct 17 #PHP
You might like
PHP 获取指定地区的天气实例代码
2017/02/08 PHP
[原创]PHP获取数组表示的路径方法分析【数组转字符串】
2017/09/01 PHP
写出更好的JavaScript程序之undefined篇(中)
2009/11/23 Javascript
在模板页面的js使用办法
2010/04/01 Javascript
判断用户是否在线的代码
2011/03/05 Javascript
JavaScript中的值是按值传递还是按引用传递问题探讨
2015/01/30 Javascript
在JS中操作时间之getUTCMilliseconds()方法的使用
2015/06/10 Javascript
jQuery原型属性和原型方法详解
2015/07/07 Javascript
jQuery轮播图效果精简版完整示例
2016/09/04 Javascript
javascript中异常处理案例(推荐)
2016/10/03 Javascript
Bootstrap源码解读导航条(7)
2016/12/23 Javascript
bootstrap modal+gridview实现弹出框效果
2017/08/15 Javascript
JS限制输入框输入的实现代码
2018/07/02 Javascript
Vue父组件如何获取子组件中的变量
2019/07/24 Javascript
微信小程序 拍照或从相册选取图片上传代码实例
2019/08/28 Javascript
Javascript原型链及instanceof原理详解
2020/05/25 Javascript
[44:41]Fnatic vs Liquid 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
python实现的DES加密算法和3DES加密算法实例
2015/06/03 Python
解析Python中的__getitem__专有方法
2016/06/27 Python
Python 正则表达式入门(中级篇)
2016/12/07 Python
Python计算两个日期相差天数的方法示例
2017/05/23 Python
在CentOS6上安装Python2.7的解决方法
2018/01/09 Python
python 表格打印代码实例解析
2019/10/12 Python
Pandas 缺失数据处理的实现
2019/11/04 Python
python 线性回归分析模型检验标准--拟合优度详解
2020/02/24 Python
腾讯技术类校园招聘笔试试题
2014/05/06 面试题
幼儿园的门卫岗位职责
2014/04/10 职场文书
小学班主任经验交流材料
2014/12/16 职场文书
检讨书范文500字
2015/01/28 职场文书
六一儿童节开幕词
2015/01/29 职场文书
校园环境卫生倡议书
2015/04/29 职场文书
党员干部学习十八届五中全会精神心得体会
2016/01/05 职场文书
《吃水不忘挖井人》教学反思
2016/02/22 职场文书
竞选稿之小学班干部
2019/10/31 职场文书
python第三方网页解析器 lxml 扩展库与 xpath 的使用方法
2021/04/06 Python
react国际化react-intl的使用
2021/05/06 Javascript