本文实例讲述了PHP实现将MySQL重复ID二维数组重组为三维数组的方法。分享给大家供大家参考,具体如下:
应用场景
MYSQL在使用关联查询时,比如 产品表 与 产品图片表关联,一个产品多张产品图片,关联查询结果如下:
1
2
3
4
5
6
7
8
9
10
11
|
$arr =[
[ 'id' =>1, 'img' => 'img1' ],
[ 'id' =>1, 'img' => 'img2' ],
[ 'id' =>1, 'img' => 'img3' ],
[ 'id' =>2, 'img' => 'img1' ],
[ 'id' =>2, 'img' => 'img2' ],
[ 'id' =>2, 'img' => 'img3' ],
[ 'id' =>3, 'img' => 'img1' ],
[ 'id' =>3, 'img' => 'img2' ],
[ 'id' =>3, 'img' => 'img3' ],
]
|
那么,我们要的结果一般是这样的,如下:
1
2
3
4
5
|
$arr =[
[ 'id' =>1, 'img' =>[ 'img1' , 'img2' , 'img3' ]],
[ 'id' =>2, 'img' =>[ 'img1' , 'img2' , 'img3' ]],
[ 'id' =>3, 'img' =>[ 'img1' , 'img2' , 'img3' ]],
]
|
解决方案
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
$arr =[
[ 'id' =>1, 'img' => 'img1' ],
[ 'id' =>1, 'img' => 'img2' ],
[ 'id' =>1, 'img' => 'img3' ],
[ 'id' =>2, 'img' => 'img1' ],
[ 'id' =>2, 'img' => 'img2' ],
[ 'id' =>2, 'img' => 'img3' ],
[ 'id' =>3, 'img' => 'img1' ],
[ 'id' =>3, 'img' => 'img2' ],
[ 'id' =>3, 'img' => 'img3' ],
]
$arr1 = array ();
foreach ( $arr as $key => $value ) {
if ( in_array( $value [ 'id' ], $value )){
$arr1 [ $value [ 'id' ]][ 'id' ]= $value [ 'id' ];
$arr1 [ $value [ 'id' ]][ 'img' ][]= $value [ 'img' ];
}
}
var_dump( $arr1 );
|
希望本文所述对大家PHP程序设计有所帮助。