在两个关联数组的关键字在PHP中的数组合并?

问题描述:

如何将这两个数组合并在一起?在两个关联数组的关键字在PHP中的数组合并?

Array 
(
[0] => Array 
    (
     [id] => 5 
     [cnt] => 14 
    ) 

[1] => Array 
    (
     [id] => 8 
     [cnt] => 2 
    ) 

) 

Array 
(
    [0] => Array 
     (
      [id] => 8 
      [binding] => hardcover 
     ) 

    [1] => Array 
     (
      [id] => 5 
      [binding] => softcover 
     ) 
) 

预期的结果是:

Array 
    (
     [0] => Array 
      (
       [id] => 5 
       [binding] => softcover 
       [cnt] => 14 
      ) 

     [1] => Array 
      (
       [id] => 8 
       [binding] => hardcover 
       [cnt] => 2 
      ) 

    ) 

这两个数组的合并应该发生在[ID]值,而不是对任何类型的数组。我怎样才能以一种快速的方式与PHP做到这一点?

$output = array(); 

$arrayAB = array_merge($arrayA, $arrayB); 
foreach ($arrayAB as $value) { 
    $id = $value['id']; 
    if (!isset($output[$id])) { 
    $output[$id] = array(); 
    } 
    $output[$id] = array_merge($output[$id], $value); 
} 

var_dump($output); 

可选,如果你想复位输出的钥匙,只是做:

$output = array_values($output); 
+0

大 - 运行完美!谢谢! – Stefan 2012-02-02 13:21:24