我有兩個我想要合併的數組,但省略了第二個數組中匹配值的元素。 (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