Вот простой иллюстративный тест:
$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));
с результатом:
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
)
Обратите внимание, что дублирующиеся нечисловые ключи примут первое значение с помощью оператора объединения, но позжеодин с использованием array_merge.
Для числовых ключей первое значение будет использоваться с оператором объединения, тогда как все значения будут использоваться с array_merge, просто переиндексируется.
Обычно я использую оператор объединения для ассоциативных массивов иarray_merge для числового значения.Конечно, вы можете также использовать array_merge для ассоциативного, просто чтобы более поздние значения перезаписывали более ранние.