$a = array('matches' =>
array(
'5' => array('weight' => 6),
'15' => array('weight' => 6),
)
);
$b = array('matches' =>
array(
'25' => array('weight' => 6),
'35' => array('weight' => 6),
)
);
$merge = array_merge($a, $b);
print_r($merge);
The result of this script is
Array
(
[matches] => Array
(
[25] => Array
(
[weight] => 6
)
[35] => Array
(
[weight] => 6
)
)
)
But why?
I want the result was this:
Array
(
[matches] => Array
(
[5] => Array
(
[weight] => 6
)
[15] => Array
(
[weight] => 6
)
[25] => Array
(
[weight] => 6
)
[35] => Array
(
[weight] => 6
)
)
)
Because the key
'matches'in the first array is being overwritten by the same key in the second. You need to do this instead:UPDATE
In order to preserve the numeric keys, you’ll have to do this:
If using the array union operator like this, just remember the following from php.net:
http://php.net/manual/en/function.array-merge.php