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 db类库进行数据库操作
Mar 19 PHP
20个PHP常用类库小结
Sep 11 PHP
PHP中数组的三种排序方法分享
May 07 PHP
PHP获取本周第一天和最后一天示例代码
Feb 24 PHP
ThinkPHP3.1新特性之G方法的使用
Jun 19 PHP
php实现概率性随机抽奖代码
Jan 02 PHP
浅析Yii2 gridview实现批量删除教程
Apr 22 PHP
Laravel SQL语句记录方式(推荐)
May 26 PHP
关于php 高并发解决的一点思路
Apr 16 PHP
PHP实现git部署的方法教程
Dec 19 PHP
详解laravel安装使用Passport(Api认证)
Jul 27 PHP
解决在laravel中leftjoin带条件查询没有返回右表为NULL的问题
Oct 15 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
openflashchart 2.0 简单案例php版
2012/05/21 PHP
wamp服务器访问php非常缓慢的解决过程
2015/07/01 PHP
PHP数组操作简单案例分析
2016/10/15 PHP
使用PHP连接多种数据库的实现代码(mysql,access,sqlserver,Oracle)
2016/12/21 PHP
laravel配置Redis多个库的实现方法
2019/04/10 PHP
浅析PHP中的 inet_pton 网络函数
2019/12/16 PHP
Laravel 集成微信用户登录和绑定的实现
2019/12/27 PHP
JavaScript中令你抓狂的魔术变量
2006/11/30 Javascript
javascript vvorld 在线加密破解方法
2008/11/13 Javascript
JSON 数据格式介绍
2012/01/13 Javascript
jQuery对html元素取值与赋值的方法
2013/11/20 Javascript
json中换行符的处理方法示例介绍
2014/06/10 Javascript
javascript实现的简单的表单验证
2015/07/10 Javascript
浅谈js图片前端预览之filereader和window.URL.createObjectURL
2016/06/30 Javascript
AngularJS优雅的自定义指令
2016/07/01 Javascript
arcgis for js 修改infowindow样式的方法
2016/11/02 Javascript
js实现抽奖效果
2017/03/27 Javascript
一次围绕setTimeout的前端面试经验分享
2017/06/15 Javascript
ECMAScript6变量的解构赋值实例详解
2017/09/19 Javascript
vue项目持久化存储数据的实现代码
2018/10/01 Javascript
ES6入门教程之变量的解构赋值详解
2019/04/13 Javascript
Vue动态生成表格的行和列
2019/07/18 Javascript
python简单程序读取串口信息的方法
2015/03/13 Python
Python爬取qq music中的音乐url及批量下载
2017/03/23 Python
python 同时运行多个程序的实例
2019/01/07 Python
Pandas替换及部分替换(replace)实现流程详解
2020/10/12 Python
Pycharm配置lua编译环境过程图解
2020/11/28 Python
Python实现迪杰斯特拉算法并生成最短路径的示例代码
2020/12/01 Python
python和opencv构建运动检测器的实现
2021/03/03 Python
应届毕业生个人自荐信范文
2013/11/30 职场文书
文明市民先进事迹
2014/05/15 职场文书
物联网工程专业推荐信
2014/09/08 职场文书
走群众路线剖析材料
2014/10/09 职场文书
机关单位工作失职检讨书
2014/11/20 职场文书
英文邀请函
2015/02/02 职场文书
详解Go语言Slice作为函数参数的使用
2021/07/02 Golang