2012-02-02 21 views
2

これらの2つのアレイをどのようにマージできますか?phpの2つの連想配列のキーで配列をマージしますか?

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で行うことができますか?

答えて

4
$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

関連する問題