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 相关文章推荐
php5中date()得出的时间为什么不是当前时间的解决方法
Jun 30 PHP
php cookie 登录验证示例代码
Mar 16 PHP
ThinkPHP后台首页index使用frameset时的注意事项分析
Aug 22 PHP
ThinkPHP基于PHPExcel导入Excel文件的方法
Oct 15 PHP
PHP MSSQL 分页实例
Apr 13 PHP
Zend Framework上传文件重命名的实现方法
Nov 25 PHP
详解Yii2 rules 的验证规则
Dec 02 PHP
php 判断页面或图片是否经过gzip压缩的方法
Apr 05 PHP
PHP读取并输出XML文件数据的简单实现方法
Dec 22 PHP
PHP实现链表的定义与反转功能示例
Jun 09 PHP
postman的安装与使用方法(模拟Get和Post请求)
Aug 06 PHP
PHP html_entity_decode()函数讲解
Feb 25 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
Apache2 httpd.conf 中文版
2006/12/06 PHP
php5.3以后的版本连接sqlserver2000的方法
2014/07/28 PHP
PHP实现对站点内容外部链接的过滤方法
2014/09/10 PHP
Zend Framework动作助手Json用法实例分析
2016/03/05 PHP
tp5框架基于ajax实现异步删除图片的方法示例
2020/02/10 PHP
JavaScript 加号(+)运算符号
2009/12/06 Javascript
使用jQuery.fn自定义jQuery翻页插件
2013/01/20 Javascript
HTML5之lang属性与dir属性的详解
2013/06/19 Javascript
jQuery插件开发的两种方法及$.fn.extend的详解
2014/01/16 Javascript
JS获得浏览器版本和操作系统版本的例子
2014/05/13 Javascript
原生Ajax 和jQuery Ajax的区别示例分析
2014/12/17 Javascript
jQuery中appendTo()方法用法实例
2015/01/08 Javascript
jquery实现点击变换导航样式的方法
2015/08/31 Javascript
jQuery.Uploadify插件实现带进度条的批量上传功能
2016/06/08 Javascript
检查表单元素的值是否为空的实例代码
2016/06/16 Javascript
把普通对象转换成json格式的对象的简单实例
2016/07/04 Javascript
AngularJS模块详解及示例代码
2016/08/17 Javascript
jQuery动态生成不规则表格(前后端)
2017/02/21 Javascript
JS中使用gulp实现压缩文件及浏览器热加载功能
2017/07/12 Javascript
浅谈vuepress 踩坑记
2018/04/18 Javascript
微信小程序自定义导航栏(模板化)
2019/11/15 Javascript
mpvue网易云短信接口实现小程序短信登录的示例代码
2020/04/03 Javascript
Python代码的打包与发布详解
2014/07/30 Python
深入剖析Python的爬虫框架Scrapy的结构与运作流程
2016/01/20 Python
Python+OpenCV让电脑帮你玩微信跳一跳
2018/01/04 Python
python MysqlDb模块安装及其使用详解
2018/02/23 Python
python批量处理文件或文件夹
2020/07/28 Python
Python转换字典成为对象,可以用&quot;.&quot;方式访问对象属性实例
2020/05/11 Python
基于DOM+CSS3实现OrgChart组织结构图插件
2016/03/02 HTML / CSS
C#怎么让一个窗口居中显示?
2015/10/20 面试题
Java程序员面试题
2016/09/27 面试题
财务经理岗位职责
2013/11/09 职场文书
2015年国庆节广播稿
2015/08/19 职场文书
【海涛教你打DOTA】虚空假面第一视角骨弓3房29杀
2022/04/01 DOTA
Python用any()函数检查字符串中的字母以及如何使用all()函数
2022/04/14 Python
三星 3nm 芯片将于第二季度开始量产
2022/04/29 数码科技