Выбрать главу

Array( [a] => яблоко)

Приведенный пример вывел только значение [a] = яблоко, т.к. это значение присутствовало и в первом и во втором массиве.

Значение дыня не выведено, т.к. в первом массиве у него был индекс 0, а во втором - 1

Функция поддерживается PHP 4 = 4.3.0, PHP 5

array_merge

Слияние массивов.

Синтаксис:

array array_merge(array arr1, array arr2 [, array ...])

Функция array_merge() призвана устранить все недостатки, присущие оператору + для слияния массивов. А именно, она сливает массивы, перечисленные в ее аргументах, в оди большой массив и возвращает результат. Т.е. значени одного массива присоединяются к значениям предыдущего.

Если в массивах встречаются одинаковые строковые ключи, то тогда значения, принадлежащие этим ключам, сливаются в один массив таким образом, чтобы если одно из значений в свою очередь является массивом, функция array_merge() сливает его с соответствующим значением в другом массиве.

Однако это не затрагивает числовые ключи: элементы с такими ключами помещаются в конец результирующего массива в любом случае.

Пример использования функции array_merge():

<?php

$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)

Другой пример использования функции array_merge():

<?php

$array1 = array();

$array2 = array(1 => "data");

$result = array_merge($array1, $array2);

print_r($result);

?>

Пример выведет следующее:

Array( [0] => data)

Стоит отметить, что числовые ключи были потеряны.

Если есть необходимость просто слить массивы вместе, используйте оператор +

<?php

$array1 = array();

$array2 = array(1 => "data");

$result = $array1 + $array2;

print_r($result);

?>

Пример выведет следующее:

Array( [1] => data)

Функция поддерживается PHP 4, PHP 5

array_merge_recursive

Рекурсивное слияние сложных массивов.

Синтаксис:

array array_merge_recursive(array arr1, array arr2 [, array ...])

Функция array_merge_recursive() объединяет элементы массивов, переданных в ее параметрах таким образом, что значения одного массива присоединяются к значениям предудущих.

Функция возвращает массив, состоящий из объединенных массивов.

Если массивы, переданные в параметрах этой функции, имеют одинаковые строковые ключи, тогда значения, соответствующие этим ключам, сливаются в один массив. При этом если одно из значений само является массивом, то оно будет слито с соответствующим значением в другом массиве.

Но если в массивах присутствуют одинаковые числовые ключи, то тогда значение такого ключа, упомянутое последним, не заменит исходное значение, а будет слито с ним.

Пример использования функции array_merge_recursive():

<?php

$arr1 = array("color" => array("favorite" =>"red"), 5);

$arr2 = array(10, "color" => array("favorite" =>"green", "blue"));

$result = array_merge_recursive($arr1, $arr2);

print_r($result_;

?>

Пример выведет:

Array( [color] => Array ( [favorite] => Array ( [0] => red [1] => green ) [0] => blue ) [0] => 5 [1] => 10)

Функция поддерживается PHP 4 =, PHP 5

Получение и удаление части массива

array_slice

Получение части массива.

Синтаксис:

array array_slice(array arr, int offset [, int lenght])

Функция array_slice() возвращает часть ассоциативного массива arr, начиная с элемента со смещением (номером) offset от начала и длиной lenght (если последний параметр не задан, до конца массива).

Параметры offset и lenght задаются по точно таким же правилам, как и аналогичные параметры в функции substr(). А именно, если offset0, то последовательность будет начинаться с элемента, имеющего позицию offset от начала массива, а если <0, то отсчет производится от конца массива. Надо отметить, что первый элемент имеет нулевую позицию, а последний (-1).

Если указать length>0, то это число возвращаемых в массиве элементов, а если length<0, то это позиция последнего возвращаемого элемента в массиве arr от его конца.

Пример использования функции array_slice():

<?php

$input = array("a", "b", "c", "d", "e");

$output = array_slice($input, 2); // "c", "d", "e"

$output = array_slice($input, 2, -1); // "c", "d"

$output = array_slice($input, -2, 1); // "d"

$output = array_slice($input, 0, 3); // "a", "b", "c"

?>

Функция поддерживается PHP 4, PHP 5

array_splice

Удаляет часть массива или заменяет ее частью другого массива.

Синтаксис:

array array_splice(array arr, int offset [, int lenght [, int replacement]])

Функция array_splice(), также как и array_slice(), возвращает подмасcив arr начиная с индекса offset максимальной длины lenght, но, вместе с тем, она делает и другое полезное действие. А именно, она заменяет только что указанные элементы на то, что находится в массиве replacement (или просто удаляет, если replacement не указан).

Если offset>0, то последовательность будет начинаться с элемента, имеющего позицию offset от начала массива, а если <0, то отсчет производится от конца массива. Надо отметить, что первый элемент имеет нулевую позицию, а последний (-1).