我有两个数组,每个数组都包含一个id
键,我想根据该数组的键和键值将数据合并在一起。数据可能如下所示:
$color = [
['id' => 1, 'color' => 'red'],
['id' => 2, 'color' => 'green'],
['id' => 3, 'color' => 'blue'],
];
$size = [
['id' => 1, 'size' => 'SM'],
['id' => 2, 'size' => 'XL'],
['id' => 3, 'size' => 'MD'],
['id' => 4, 'size' => 'LG'],
];
$combined = [
['id' => 1, 'color' => 'red', 'size' => 'SM'],
['id' => 2, 'color' => 'green', 'size' => 'XL'],
['id' => 3, 'color' => 'blue', 'size' => 'MD'],
['id' => 4, 'size' => 'LG'],
];
有没有特别高效的函数或技巧可以处理这样的情况?还是我应该只遍历一个数组的元素并将内容推到另一个数组中?
我还在使用Laravel,数据是由一个Eloquent查询结果生成的,所以如果它可以使代码更清晰,我也可以利用集合。
array_replace_recursive()
函数在索引(未准备好)的子数组上的使用之所以有效,是因为提供的数据具有关联的子数组,这些子数组也共享第一级索引。请参阅我的答案 了解为什么这不是一个稳定的解决方案以及如何使其稳定。 - mickmackusa