Функция поддерживается PHP 5
array_intersect
Определение включительного пересечения массивов.
Синтаксис:
array array_intersect(array arr1, array arr2 [, array ...])
Функция array_intersect() возвращает массив, который содержит значения массива arr1, имеющиеся во всех остальных массивах. При этом индексы сохраняются.
Пример использования функции array_intersect():
>
>$arr1 = array("a" => "green", "red", "blue");
>$arr2 = array("b" => "green", "yellow", "red");
>$result = array_intersect($arr1, $arr2);
>print_r($result);
?>
Пример выведет:
Array( [a] => green [0] => red)
Функция поддерживается PHP 4 = 4.0.1, PHP 5
array_intersect_assoc
Функция возвращает пересечения значений массивов с сохранением индексов.
Синтаксис:
array array_intersect_assoc(array array1, array array2 [, array ...])
Функция array_intersect_assoc() возвращает массив, который содержит все значения array1, имеющиеся во всех остальных перечисленных массивах. В отличие от функции array_intersect() при сравнении ключи учитываются.
Пример использования функции array_intersect_assoc():
>
>$array1 = array("a" => "яблоко", "b" => "груша", "c" => "дыня", "слива");
>$array2 = array("a" => "яблоко", "апельсин", "слива");
>$result_array = array_intersect_assoc($array1, $array2);
?>
Пример выведет следующее:
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():
>
>$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():
>
>$array1 = array();
>$array2 = array(1 => "data");
>$result = array_merge($array1, $array2);
>print_r($result);
?>
Пример выведет следующее:
Array( [0] => data)
Стоит отметить, что числовые ключи были потеряны.
Если есть необходимость просто слить массивы вместе, используйте оператор +
>
>$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():