合併不同的值我有一個數組:濾波器2名維陣列和PHP
$arr = [
['id'=>1, 'name'=>'Peter', 'age'=>28],
['id'=>1, 'name'=>'David', 'age'=>28],
['id'=>2, 'name'=>'John', 'age'=>34],
['id'=>3, 'name'=>'Smith', 'age'=>36],
['id'=>3, 'name'=>'Smith', 'age'=>28],
];
欲通過柱的「id」過濾它,併合並不同的值。我需要輸出:
$arr = [
['id'=>1, 'name'=>'Peter,David', 'age'=>28],
['id'=>2, 'name'=>'John', 'age'=>34],
['id'=>3, 'name'=>'Smith', 'age'=>'36,28']
];
是否有任何PHP函數(如:array_filter,array_walk,array_map,...)要做到這一點,沒有下文循環的代碼?
function combine_row($arr){
$last = null;
foreach ($arr as $key => $a){
if ($a['id']==$last['id']){
foreach ($a as $k=>$v) {
if($v!==$last[$k]) {
$arr[$key][$k].=','.$last[$k];
}
}
unset($arr[$key-1]);
}
$last = $a;
}
return $arr;
}
感謝您的幫助!
Phong,你解決了嗎?讓我知道如果我應該對我的答案進行更改 – Michael
對不起,邁克爾,我沒有回來查看您的答案,因爲我找到了通過使用Group_concat從mysql中修復它的方法。無論如何,你的答案是如此完美。我將其標記爲已接受的答案。謝謝! –