$arr1 += $arr2
- это сокращение от $arr1 = $arr1 + $arr2
.
Оператор массива +
выполняет следующие действия:
- Создает новый массив, содержащий все элементы
$arr1
и $arr2
, за исключением следующего условия. - Если оба операнда имеют элементы с одинаковой клавишей , будет присутствовать только элемент
$arr1
. - Элементы
$arr2
будут после элементов $arr1
.
Это отличается от array_merge
, что:
- Создает новый массив, который содержит все элементы
$arr1
и $arr2
, за исключением следующего условия. - Если оба операнда имеют элементы с одинаковым строковым ключом , только элемент
$arr2
. - Элементы с цифровыми клавишами будут перенумерованы с 0, начиная с элементов
$arr1
, а затем перейдя кэлементы $arr2
. - Элементы
$arr2
будут следовать за элементами $arr1
, за исключением строковых элементов, которые будут вположение первого массива, в котором они появляются.
Пример:
<?php
$arr1 = array(1 => 'value1.1', 10 => 'value1.2', 's' => 'value1.s');
$arr2 = array(1 => 'value2', 2=> 'value2.2', 's' => 'value2.s');
var_dump(array_merge($arr1,$arr2));
$arr1 += $arr2;
var_dump($arr1);
Результат (отредактировано для ясности):
array(5) {
[0] => string(8) "value1.1"
[1] => string(8) "value1.2"
["s"] => string(8) "value2.s"
[2] => string(6) "value2"
[3] => string(8) "value2.2"
}
array(4) {
[1] => string(8) "value1.1"
[10] => string(8) "value1.2"
["s"] => string(8) "value1.s"
[2] => string(8) "value2.2"
}