What's the difference between array_merge and array + array?
Here's a simple illustrative test:
$ar1 = [ 0 => '1-0', 'a' => '1-a', 'b' => '1-b'];$ar2 = [ 0 => '2-0', 1 => '2-1', 'b' => '2-b', 'c' => '2-c'];print_r($ar1+$ar2);print_r(array_merge($ar1,$ar2));
with the result:
Array( [0] => 1-0 [a] => 1-a [b] => 1-b [1] => 2-1 [c] => 2-c)Array( [0] => 1-0 [a] => 1-a [b] => 2-b [1] => 2-0 [2] => 2-1 [c] => 2-c)
Notice that duplicate non-numeric keys will take the first value using the union operator but the later one using the array_merge.
For numeric keys, the first value will be used with the union operator whereas the all the values will be used with the array_merge, just reindexed.
I generally use union operator for associative arrays and array_merge for numeric. Of course, you can just as well use the array_merge for associative, just that the later values overwrite earlier ones.