2015-09-29 83 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