我在这样的数组中有很多记录(元素),基本上来自带有union all'keyword'的查询:
Array
(
[0] => Array
(
[id] => 16
[no_surat] => E1679
[level] => B
)
[1] => Array
(
[id] => 16
[no_surat] => E1679
[level] => C
)
[2] => Array
(
[id] => 169
[no_surat] => E1736
[level] => B
)
)
我需要将这些元素变成这样的格式:
Array
(
[16] => E1679 - B
[16] => E1679 - C
[169] => E1736 - B
)
所以,我尝试使用像这样的array_map函数:
$listNoEstimate = array_map(function ($insert) {
return array(
$insert['id'] => $insert['no_surat'] . ' - ' . $insert ['level']
);
}, $listNoEstimate);
结果如下:
Array
(
[0] => Array
(
[16] => E1679 - B
)
[1] => Array
(
[16] => E1679 - C
)
[2] => Array
(
[169] => E1736 - B
)
)
请告知
答案 0 :(得分:2)
无论如何这是不可能的,
相反,你可以做这样的事情,
$result = [];
foreach($listNoEstimate as $k => $v){
$result[$v['id']][] = $v['no_surat'].' - '.$v['level'];
}
我希望这会有所帮助。
答案 1 :(得分:0)
没有直接的方法直接做这件事,虽然你可以像这样做
for($i=0;$i<count($listNoEstimate);$i++){
$j=0;
foreach($listNoEstimate[$i] as $key => $value){
$temp[$j]=$value;
$j++;
}
$listNoEstimate[$temp[0]]=$temp[1]-$temp[2];
}
注意:如果[id] => 16
是唯一的,此方法可以正常运行。否则它将取代以前的数据。