2013-05-28 50 views
8

是否有这些阵列如何在保存键的同时合并多维数组?

$array1 = array(
    '21-24' => array(
     '1' => array("...") 
    ) 
); 

$array2 = array(
    '21-24' => array(
     '7' => array("..."), 
    ) 
); 

$array3 = array(
    '25 and over' => array(
     '1' => array("...") 
    ) 
); 

$array4 = array(
    '25 and over' => array(
     '7' => array("...") 
    ) 
); 

被合并而导致进入下面的阵列的方法吗?

array(
    '21-24' => array(
     '1' => array("..."), 
     '7' => array("...") 
    ),  
    '25 and over' => array(
     '1' => array("..."), 
     '7' => array("...") 
    ) 
); 

注意

  • 我没有在阵列结构,这样就需要改变结构没有任何解决办法控制我所期待的
  • 我主要兴趣保留前两个级别的密钥,但更强大的解决方案是可以处理所有级别的解决方案。

我试着用array_merge_recursive()这样

$x = array_merge_recursive($array1, $array2); 
$x = array_merge_recursive($x, $array3); 
$x = array_merge_recursive($x, $array4); 

但却造成

array(
    '21-24' => array(
     '1' => array("..."), 
     '2' => array("...") 
    ),  
    '25 and over' => array(
     '1' => array("..."), 
     '2' => array("...") 
    ) 
); 
+0

你只有4个阵列吗? – HamZa

+0

@tessmore它已经在问题解释,我试过但没有按预期工作 – arvinsim

+0

@HamZaDzCyber​​DeV我正在处理的实际代码各不相同。但不变的是一级和二级键。当然,最好的解决方案根本不应该关心这一点。 – arvinsim

回答

21

你有没有考虑array_replace_recursive()

print_r(array_replace_recursive($array1, $array2, $array3, $array4)); 
+4

这就像你从头脑里知道整个PHP手册:D – HamZa

+1

@Jack Yep,array_replace_recursive()做了我想做的事情。 – arvinsim

+1

@Jack拯救我的一天它的工作+1 –