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