我有两个我想要合并的数组,但省略了第二个数组中匹配值的元素。 (id
和otherId
)合并2个数组,将第二个数组的元素留在值匹配
我知道如何用第一个循环内的第二个循环来实现这一点,但我想知道是否可以使用单个循环或使用特定的PHP函数来实现?
这是什么,我现在在做一个例子:
foreach ($array1 as $item)
{
$id = $item['id'];
foreach ($array2 as $key => $item)
{
if ($item['otherId'] == $id)
{
unset($array2[$key]);
}
}
}
$output = array_merge($array1, $array2);
会有很多在两个数组的元素,所以我在寻找这样做的最有效的方式。阵列
例子:
$array1 = [
[
'id' => 1
'name' => 'item 1'
],
[
'id' => 2
'name' => 'item 2'
],
[
'id' => 3
'name' => 'item 3'
],
[
'id' => 4
'name' => 'item 4'
]
];
$array2 = [
[
'id' => 1,
'otherId' => 2,
'name' => 'item 2'
],
[
'id' => 2,
'otherId' => 3,
'name' => 'item 3'
],
[
'id' => 3,
'otherId' => null,
'name' => 'item 4'
],
[
'id' => 4,
'otherId' => null,
'name' => 'item 5'
]
];
$output = [
[
'id' => 1
'name' => 'item 1'
],
[
'id' => 2
'name' => 'item 2'
],
[
'id' => 3
'name' => 'item 3'
],
[
'id' => 4
'name' => 'item 4'
],
[
'id' => 3,
'otherId' => null,
'name' => 'item 4'
],
[
'id' => 4,
'otherId' => null,
'name' => 'item 5'
]
];
_“所以我正在寻找这样做的最有效的方法”_ - 那么请告诉我们你已经找到/开发和尝试了哪些方法。 – CBroe
@CBroe循环内有一个循环,并检查这些值是否匹配。但我想避免使用嵌套循环。我会用这个例子更新我的问题。 – jlmmns
你可以发布你的原始代码,合并 – gwillie