(PHP 5)
array_diff_uassoc --
Вычислить расхождение в массивах с дополнительной проверкой индекса,
осуществляемой при помощи функции, определённой пользователем
Описание
array
array_diff_uassoc ( array array1, array array2 [, array ..., callback key_compare_func] )
array_diff_uassoc() возвращает array,
содержащий все значения array1,
не содержащиеся в последующих параметрах.
Обратите внимание, что в отличие от
array_diff(), для сравнения используются ключи.
Для сравнения используется функция, определённая пользователем.
Она должна возвращать целое число меньшее, равное или большее нуля, если
первый параметр, соответственно, меньше, равен или больше второго.
В отличие от array_diff_assoc(), использующей
для сравнения встроенную функцию.
Пример 1. Пример использования array_diff_uassoc()
<?php function key_compare_func($a, $b) { if ($a === $b) { return 0; } return ($a > $b)? 1:-1; }
$array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red"); $array2 = array("a" => "green", "yellow", "red"); $result = array_diff_uassoc($array1, $array2, "key_compare_func"); print_r($result); ?>
|
Результат выполнения данного примера: Array
(
[b] => brown
[c] => blue
[0] => red
) |
|
В нашем примере пара "a" => "green"
существует в обоих массивах и поэтому не присутствует в выводе функции.
Наоборот, пара 0 => "red"
присутствует в выводе, потому что во втором аргументе значению "red"
соответствует ключ 1.
Равенство двух индексов проверяется при помощи функции, определённой пользователем.
Замечание:
Обратите внимание, что эта функция обрабатывает только одно измерение
n-размерного массива. Естественно, вы можете обрабатывать и более глубокие
уровни вложенности, например, используя
array_diff_uassoc($array1[0], $array2[0], "key_compare_func");.
См. также
array_diff(),
array_diff_assoc(),
array_udiff(),
array_udiff_assoc(),
array_udiff_uassoc(),
array_intersect(),
array_intersect_assoc(),
array_uintersect(),
array_uintersect_assoc() и
array_uintersect_uassoc().