|
array_merge (PHP 4, PHP 5) array_merge -- Слить два или большее количество массивов Описаниеarray array_merge ( array array1, array array2 [, array ...] )
Функция array_merge() сливает элементы
двух или большего количества массивов таким образом, что
значения одного массива присоединяются к значениям предыдущего.
Результатом работы функции является новый массив.
Если входные массивы имеют одинаковые строковые ключи, тогда
значения, соответствующие этим ключам, рекурсивно сливаются
в один массив, таким образом, если одно из значений является
массивом, функция сливает его с соответствующим значением
в другом массиве. Однако, если массивы имеют одинаковые
числовые ключи, значение, упомянутое последним, не заменит исходное значение, а будет слито с ним.
Пример 1. Пример использования array_merge()
$array1 = array ("color" => "red", 2, 4); $array2 = array ("a", "b", "color" => "green", "shape" => "trapezoid", 4); $result = array_merge ($array1, $array2); print_r($result);
|
Результат выполнения данного примера:
Array ( [color] => green [0] => 2 [1] => 4 [2] => a [3] => b [shape] => trapezoid [4] => 4 )
|
|
Пример 2. Пример простого использования array_merge()
$array1 = array(); $array2 = array(1 => "data"); $result = array_merge($array1, $array2);
|
Не забывайте, что числовые ключи будут перенумерованы!
Если вы хотите полностью сохранить массивы и просто слить
их вместе, используйте оператор +:
$array1 = array(); $array2 = array(1 => "data"); $result = $array1 + $array2;
|
Числовой ключ будет сохранен, поэтому ассоциация также сохраняется.
|
Замечание:
Общие ключи будут перезаписаны по принципу "первый пришел - первый обработан".
Внимание |
Поведение функции array_merge() было изменено в PHP 5. В отличие от PHP 4, array_merge()
принимает параметры только типа array. Однако вы можете использовать приведение типов.
Смотрите следующий пример для уточнения подробностей.
Пример 3. Пример использования array_merge() с параметрами разных типов в PHP 5
<?php $beginning = 'foo'; $end = array(1 => 'bar'); $result = array_merge((array)$beginning, (array)$end); print_r($result); ?>
|
Результат выполнения данного примера:
Array ( [0] => foo [1] => bar )
|
|
|
См.также array_merge_recursive().
| |