通过关联值合并多维数组

问题描述 投票:0回答:1

我搜索了很多SOF线程,但似乎没人坚持我的问​​题。什么样的连线,因为这应该是一个讨论充分的问题:)

也许我正在寻找错误的东西...

Szenario:

我有2个数组

$a = [ 
    ['id' => 5, 'name' => 'bruce'],
    ['id' => 7, 'name' => 'wayne']
];
// 2 elements

$b = [
    ['id' => 6, 'name' => 'chuck'],
    ['id' => 8, 'name' => 'norris'],
    ['id' => 7, 'name' => 'wayne']
];
// 3 elements

我的目标是

$c = [
    ['id' => 6, 'name' => 'chuck'],
    ['id' => 8, 'name' => 'norris'],
    ['id' => 7, 'name' => 'wayne'],
    ['id' => 5, 'name' => 'bruce']
];
// 4 elements (because wayne allready existed)

我真的不在乎数组中的顺序,但我想将两者合并为一个,而不必重复。

我尝试过array_mergearray_merge_recursive。没有人工作。可能是因为函数不知道标识每个条目的标识符。有没有简单的解决方案,或者我真的必须为此创建自己的方法/函数吗?

也许我可以使用闭包?

php merge closures array-merge
1个回答
0
投票
$temp = array_merge($b, $a);
foreach ($temp as $v) {
    $c[$v['id']] = $v;
}

如果找到相同的ID,则该元素将在$ c中被覆盖

© www.soinside.com 2019 - 2024. All rights reserved.