PHP数组合并的问题搞了很久没有解决:
原始数组
array(
1=> array("12"=>array("aaaa"),"15"=>array("cccc") ),
2=> array("13"=>array("bbbb"),"18"=>array("dddd") ),
3=> array()
)二维的键名保持不变,合并成
array (
"12"=>array("aaaa"),"15"=>array("cccc"),
"13"=>array("bbbb"),"18"=>array("dddd") 
 )怎么简单实现? 谢谢~!

解决方案 »

  1.   


    $arr = array(
    1=> array("12"=>array("aaaa"),"15"=>array("cccc") ),
    2=> array("13"=>array("bbbb"),"18"=>array("dddd") ),
    3=> array()
    );
    $res = array();
    foreach($arr AS $v)
    {
    $res += $v;
    }
    print_r($res);
    /**Array
    (
        [12] => Array
            (
                [0] => aaaa
            )
     
        [15] => Array
            (
                [0] => cccc
            )
     
        [13] => Array
            (
                [0] => bbbb
            )
     
        [18] => Array
            (
                [0] => dddd
            )
     
    )
    /**/
      

  2.   


    for($i=0;$i<count($arr);$i++){
            if($arr[$i]=="") continue;
        foreach($arr[$i] as $k=>$v) $tem[$k]=$v;
    }
    print_r($tem);
      

  3.   

    二楼的兄弟,不好意思,我看了一下,是我假设的数组和实际数组不一样,实际应该是这样的。
    array(
    1=> array(
    "12"=>array("name"=>"aaaa","age"=>15),
    "15"=>array(("name"=>"bbbb","age"=>15)
     ),
    2=> array(
    "13"=>array("name"=>"cccc","age"=>15),
    "18"=>array(("name"=>"dddd","age"=>15)
    ),
    3=> array()
    )因此不能用加号运算符,进行数组合并。
      

  4.   

    $ar = array(
    1=> array("12"=>array("aaaa"),"15"=>array("cccc") ),
    2=> array("13"=>array("bbbb"),"18"=>array("dddd") ),
    3=> array()
    );$result = array();
    foreach($ar as $v) foreach($v as $k => $vv) $result[$k] = $vv;