使用相同的键合并两个数组

use*_*810 0 php arrays

我需要一个合并两个数组的帮助.假设我有以下数组:

Array
(
[3] => Array
    (
        [id] => 3
        [name] => Lorem
        [type] => pl
    )

[2] => Array
    (
        [id] => 2
        [name] => Ipsum
        [type] => pl
    )

)
Run Code Online (Sandbox Code Playgroud)

第二个:

Array
(
    [6] => Sit dolor
    [4] => nostrud exercitation ullamco
    [3] => uuntur magni dolores
    [2] => corporis suscipit laboriosam
    [7] =>  quia non numquam eius modi tempora
 )
Run Code Online (Sandbox Code Playgroud)

期望的输出是:

Array
(
[3] => Array
    (
        [id] => 3
        [name] => Lorem
        [type] => pl
        [new_key] => uuntur magni dolores
    )

[2] => Array
    (
        [id] => 2
        [name] => Ipsum
        [type] => pl
        [new_key] => corporis suscipit laboriosam
    )
)
Run Code Online (Sandbox Code Playgroud)

我一直在尝试比较数组与array_diff_key()方法,而不是在某些循环中合并数组,但我无法使它工作.有没有内置的PHP函数,还是我应该自己编写?如果是这样,你能帮助我获得理想的结果吗?任何帮助深表感谢.

Bab*_*aba 5

所有你需要的是

$data = array_map(function ($v) use($new) {
    isset($new[$v['id']]) and $v['new_key'] = $new[$v['id']] ;
    return $v;
}, $data);

var_dump($data);
Run Code Online (Sandbox Code Playgroud)

输出(DEMO)

array (size=2)
  3 => 
    array (size=4)
      'id' => int 3
      'name' => string 'Lorem' (length=5)
      'type' => string 'pl' (length=2)
      'new_key' => string 'uuntur magni dolores' (length=20)
  2 => 
    array (size=4)
      'id' => int 2
      'name' => string 'Ipsum' (length=5)
      'type' => string 'pl' (length=2)
      'new_key' => string 'corporis suscipit laboriosam' (length=28)
Run Code Online (Sandbox Code Playgroud)