2015-09-29 84 views
1

我有兩個數組,並且想要合併/合併/將它們放在一起。合併兩個多維數組,保留數字鍵併合並數組中的值

$arr1 = array(
    0 => array(1, 2), 
    1 => array(5, 6) 
); 

$arr2 = array(
    0 => array(2, 3), 
    1 => array(6, 7) 
);  

come_together_right_now($arr1, $arr2); // the missing function? 

,其結果將是:

Array ( 
    [0] => Array ( 
     [0] => 1 
     [1] => 2 
     [2] => 3 
    ) 
    [1] => Array ( 
     [0] => 5 
     [1] => 6 
     [2] => 7 
    ) 

有太多的陣列功能! array_mergearray_combine並且遞歸替代方法似乎取代了這些值並且它們不保留數字鍵。我該怎麼做呢?

+0

爲什麼downvote? –

回答

3

假設他們將始終具有相同的密鑰!

$result = array(); 

foreach($arr1 as $key=>$array) { 
    $result[$key] = array_merge($array, $arr2[$key]); 
} 
+0

由於鍵是數字,正在創建重複項。有沒有一個array_merge我可以放在循環中,將覆蓋重複?我編輯了我的結果集來展示我的意思。 –

+0

試試'array_unique(array_merge($ array,$ arr2 [$ key]));' –

+1

對我來說很完美 - 它保持子數組的方式 –

2

我可能會晚點回答這個問題,但是這可能會幫助您只需使用array_maparray_mergearray_unique功能等作爲

$result = array_map('array_unique',array_map('array_merge',$arr1,$arr2)); 
print_r($result); 

輸出

Array ( 
    [0] => Array ( 
     [0] => 1 
     [1] => 2 
     [2] => 3 
    ) 
    [1] => Array ( 
     [0] => 5 
     [1] => 6 
     [2] => 7 
    ) 

Demo