(PHP 5)
array_diff_uassoc — Вычислить расхождение в массивах с дополнительной проверкой индекса, осуществляемой при помощи функции, определённой пользователем
Сравнивает array1 c array2 и возвращает разницу. В отличие от array_diff(), для сравнения используются ключи.
В отличие от array_diff_assoc(), для сравнения ключей используется пользовательская функция, а не встроенная.
Исходный массив
Массив, с которым идет сравнение
Дополнительные массивы, с которыми осуществляется сравнение
Используемая callback-функция. Данная функция должна возвращать целое число, меньшее, равное, либо большее нуля, если первый аргумент соответственно считается меньшим, равным, либо большим, чем второй.
Возвращает an array, содержащий все элементы array1, которых нет во всех остальных массивах.
Пример #1 Пример использования array_diff_uassoc()
Пара "a" => "green" существует в обоих массивах и поэтому отсутствует в выводе функции. Наоборот, пара 0 => "red" находится в выводе функции, так как второй аргумент "red" имеет ключ, равный 1.
<?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 )
Равенство 2 индексов проверяется функцией, предоставляемой пользователем.
Замечание:
Эта функция обрабатывает только одно измерение n-размерного массива. Естественно, вы можете обрабатывать и более глубокие уровни вложенности, например, используя array_diff_uassoc($array1[0], $array2[0], "key_compare_func");.