//比如下面两个数组
$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));
**/有什么好的方法?

解决方案 »

  1.   


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

  2.   

    如果不考虑更进一步的递归  每次都是两个二维数组合并的话   直接写个循环然后array_merge如何?
      

  3.   

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