phparraysrecursionmultidimensional-arrayarray-merge

How to recursively merge two multidimensional arrays


I have two arrays, that I'm simply trying to merge together in a function:

$var1=array();
$myInputVar=array();
$var1['something']['secondary_something'][]="foo1";
$var1['something']['secondary_something'][]="foo2";
$var1['something']['secondary_something'][]="foo3";

$myInputVar['something']['secondary_something'][]="foo4";
$myInputVar['something']['secondary_something'][]="foo5";

function something(&$array_, $array_new) {
   $array = array_merge($array_ , $array_new); 

    print_r($array);//for debugging

}   
something($var1, $myInputVar);

Now that prints:

Array ( [something] => Array ( [secondary_something] => Array ( [0] => foo1 [1] => foo2 [2] => foo3 ) ) )

When I was expecting:

Array ( [something] => Array ( [secondary_something] => Array ( [0] => foo1 [1] => foo2 [2] => foo3 [3] => foo4 [4] => foo5) ) )

I've also tried:

$array = $array_ + $array_new;

Which still doesn't print what I'm expecting.

I have a feeling I've misunderstood the purpose of the array_merge() function, which is why its not returning the result I'm expecting it to return.

Any ideas?


Solution

  • Try array_merge_recursive().