PHP把MYSQL重複ID二維陣列重組為三維陣列

速貸100發表於2017-03-09

應用場景

MYSQL在使用關聯查詢時,比如 產品表 與 產品圖片表關聯,一個產品多張產品圖片,關聯查詢結果如下:


$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`],
]

那麼,我們要的結果一般是這樣的,如下:


$arr=[
[`id`=>1,`img`=>[`img1`,`img2`,`img3`]],
[`id`=>2,`img`=>[`img1`,`img2`,`img3`]],
[`id`=>3,`img`=>[`img1`,`img2`,`img3`]],
]
解決方案

$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);


相關文章