如何合并PHP数组?

Ann*_*nan 12 php arrays

我有两个动物阵列(例如).

$array = array(
    array(
        'id' => 1,
        'name' => 'Cat',
    ),
    array(
        'id' => 2,
        'name' => 'Mouse',
    )
);

$array2 = array(
    array(
        'id' => 2,
        'age' => 321,
    ),
    array(
        'id' => 1,
        'age' => 123,
    )
);
Run Code Online (Sandbox Code Playgroud)

如何通过ID将两个数组合并为一个?

Ros*_*oss 10

@Andy

http://se.php.net/array_merge

这是我的第一个想法,但它并没有完全奏效 - 但是array_merge_recursive可能会起作用 - 现在懒得检查.


Ros*_*oss 3

这会执行 Erik 建议的操作(id 号作为数组键)并将 vlaues 合并$array2$results.

$results = array();

foreach($array as $subarray)
{
    $results[$subarray['id']] = array('name' => $subarray['name']);
}

foreach($array2 as $subarray)
{
    if(array_key_exists($subarray['id'], $results))
    {
        // Loop through $subarray would go here if you have extra 
        $results[$subarray['id']]['age'] = $subarray['age'];
    }
}
Run Code Online (Sandbox Code Playgroud)