
php多维数组根据键值合并
要根据键值合并多维数组,可以使用 array_reduce() 函数,如下所示:
$result = array_reduce($data, function ($result, $current) {
// 把 workid 作为键
$target = array_merge($result[$current['workid']] ?? [], $current);
$result[$current['workid']] = $target;
return $result;
}, []);这行代码接受一个数组 $data 作为输入,将其传递给一个回调函数,该函数具有两个参数:
- $result:截至当前点的合并结果。
- $current:当前数组元素。
回调函数将 workid 作为键,然后将当前元素与任何具有相同 workid 的现有元素合并。合并后的结果存储在 $result 中,最终产生合并后的数组。
立即学习“PHP免费学习笔记(深入)”;
要易于阅读,您还可以使用以下代码:
$result = [];
foreach ($data as $item) {
$result[$item['workID']] = array_merge($result[$item['workID']] ?? [], $item);
}这会产生相同的合并数组,但使用更直观的语法。











