Главная > Программирование > РНР: настольная книга программиста
<< Предыдущий параграф
Следующий параграф >>
<< Предыдущий параграф Следующий параграф >>
Макеты страниц

20.2. Вычисления матриц

Бывают такие ситуации, когда существует примерно два-три массива со своими значениями, при этом половина значений присутствуют и в первом, и во втором, и в третьем, а вам при постановке задач необходимо создать такой массив, в котором эти значения встречались бы только один раз, т. е. не повторялись ни в первом, ни во втором, ни в третьем. Данная задача решается при помощи функции array_diff(), которая используется в версиях старше РНР 4. Синтаксис данной функции выглядит следующим образом:

array array_diff (array array1, array array2 [, array...])

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

$array1 = array ("а" => "машина", "человек", "собака");

$array2 = array ("b" => "машина", "человек", "дом");

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

Результатом выполнения данной программы будет массив array ("собака"). А результатом примера

Sarray1 = array ("a" => "green", "red", "blue");

$array2 = array ("b" => "green", "yellow", "red");

$array3 = array ("c" => "green", "blue", "red");

$result = array_diff ($arrayl, $array2, $array3);

print_r($result);

будет пустой массив, все элементы массива $array1 встречаются в массиве $array2 и в массиве $array3.

Теперь рассмотрим другую функцию, которая выводит массив всех значений, совпавших со значениями массивов, включенных в эту функцию. Данная функция выглядит так:

array array_intersect(array array1, array array2 [, array...])

Она, как и предыдущая, возвращает массив значений. Применяется в РНР 4 и старше. Рассмотрим примеры, описываемые нами ранее:

Sarray1 = array("а" => "машина", "человек", "собака"); $array2 = array("b" => "машина", "человек", "дом"); $result = array_intersect($array1, $array2);

Массив, который возвратит данная функция, будет представлять из себя следующее:

array("a" => "машина", "человек");

Как видно, те значения, которые встречаются в массиве будут входить в наш новый массив.

Приведем другой пример:

$array1 = array("а" => "green", "red", "blue");

$array2 = array("b" => "green", "yellow", "red");

$array3 = array("c" => "green", "blue", "red");

$result = array_intersect($array1, $array2, $array3);

print_r($result);

После выполнения данного кода будет создан массив, содержащий все элементы массива $array1, т. е. он каким был, таким и останется.

<< Предыдущий параграф Следующий параграф >>
Оглавление