Объединение массивов
Для объединения любых массивов можно использовать функцию 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
)