Объединение массивов

Для объединения любых массивов можно использовать функцию array_merge. При использовании этой функции все числовые ключи массивов будут перенумерованы.

Простые массивы без указания ключей:

Скопировано
$arr1 = [ 1, 2, 'три' ];
$arr2 = [ 'четыре', 5 ];
$arr = array_merge( $arr1, $arr2 );
Показать код

Результат:

Array (
  [0] => 1
  [1] => 2
  [2] => три
  [3] => четыре
  [4] => 5
)

Массивы с явно указанными ключами

Скопировано
$arr1 = [ 'a' => 1, 5 => 'два' ];
$arr2 = [ 'c' => 'три' ];
$arr = array_merge( $arr1, $arr2 );
Показать код

Результат:

Array (
  [a] => 1
  [0] => два
  [c] => три
)

Обратите внимание, что числовой ключ 5 был перенумерован.

Смешанные массивы

Скопировано
$arr1 = [ 'c' => 1, 2, '3' => 'три' ];
$arr2 = [ 'четыре', 5 ];
$arr = array_merge( $arr1, $arr2 );
Показать код

Результат:

Array (
  [c] => 1
  [0] => 2
  [1] => три
  [2] => четыре
  [3] => 5
)

Здесь обратите внимание, что не смотря на то, что в первом массиве ключ '3' задан строкой (в кавычках), он все равно признан числом и переименован.

Многомерные массивы

Скопировано
$arr1 = [
'a' => 1,
'b' => [
'd' => 3,
5 => 2,
4
]
];
$arr2 = [ 7 => 'семь' ];
$arr = array_merge( $arr1, $arr2 );
Показать код

Результат:

Array (
  [a] => 1
  [b] => Array (
    [d] => 3
    [5] => 2
    [6] => 4
  )
  [0] => семь
)

 

Кроме использования функции array_merge для массивов с явно указанными ключами можно использовать простое сложение:

Скопировано
$arr1 = [ 'a' => 1, 5 => 'два' ];
$arr2 = [ 'c' => 'три' ];
$arr = $arr1 + $arr2;
Показать код

Результат:

Array (
  [a] => 1
  [5] => два
  [c] => три
)

Заметьте, что для одних и тех же массивов результат отличается от использования array_merge - числовой индекс 5 не был перенумерован, а сохранился.

 

Как при использовании array_merge, так и при сложении массивов, если в массивах окажутся совпадающие ключи, то сохранится только элемент из первого массива, а соответствующий элемент из второго массива будет проигнорирован:

Скопировано
$arr1 = [ 'a' => 1, 'b' => 2];
$arr2 = [ 'c' => 3, 'a' => 4];
$arr = $arr1 + $arr2;
Показать код

Результат:

Array (
  [a] => 1
  [b] => 2
  [c] => 3
)