日期:2014-05-17  浏览次数:20669 次

求教如何合并数组

//比如下面两个数组
$a1=array(2=>array(1,2),3=>array(4));
$a2=array(2=>array(5),5=>array(4));
/**
*我想$a1跟$a2合并的结果为 array(2=>array(1,2,5),3=>array(4),5=>array(4));
**/

有什么好的方法?

------解决方案--------------------

$keys = array_unique(array_keys(array_merge($arr1, $arr2)));
foreach($keys as $k) {
 .....
}


------解决方案--------------------
如果不考虑更进一步的递归  每次都是两个二维数组合并的话   直接写个循环然后array_merge如何?
------解决方案--------------------
楼上正解。。。
------解决方案--------------------
$a1 = array(2=>array(1,2),3=>array(4));
$a2 = array(2=>array(5),5=>array(4));

foreach($a2 as $k=>$v) {
  if(isset($a1[$k])) $a1[$k] = array_merge($a1[$k], $v);
  else $a1[$k] = $v;
}
print_r($a1);
Array
(
    [2] => Array
        (
            [0] => 1
            [1] => 2
            [2] => 5
        )

    [3] => Array
        (
            [0] => 4
        )

    [5] => Array
        (
            [0] => 4
        )

)