本文实例讲述了yii遍历行下每列数据的方法。分享给大家供大家参考,具体如下:
效果图如下:
控制器(1种):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
//显示列表 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种):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
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 ]); } |
视图层:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
<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程序设计有所帮助。