array_diff_uassoc
(PHP 5)
array_diff_uassoc —
Вычислить расхождение в массивах с дополнительной проверкой индекса,
осуществляемой при помощи функции, определённой пользователем
Описание
array array_diff_uassoc
(
array $array1
,
array $array2
[,
array $...
],
callback $key_compare_func
)
Для сравнения используется функция, определённая пользователем.
Она должна возвращать целое число меньшее, равное или большее нуля, если
первый параметр, соответственно, меньше, равен или больше второго.
В отличие от 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().