(PHP 5)
array_diff_uassoc — Изчислява разлика на масиви с допълнителна проверка на индекса извършвана от потребителска функция за обратно извикване
Сравнява array1 с array2 и връща разликите. За разлика от функция array_diff(), тук при сравняването се използват и ключовете на масивите.
За разлика от функция array_diff_assoc(), се използва не вътрешна функция, а потребителска функция за обратно извикване.
Масивът спрямо който се извършва сравнението
Масивът с който се извършва сравнението
Още масиви с които се извършва сравнението
Функцията за обратно извикване (callback). Обратно извикващата функция трябва да върне цяло число по-малко, равно или по-голямо от нула, ако първият аргумент е съответно по-малък, равен или по-голям от втория.
Връща масив съдържащ всички стойности от array1 , които не присъстват в никой от другите масиви.
Example #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 )
Равенството на два израза се проверява с потребителска функция за обратно извикване.
Забележка: Функцията проверява само една размерност на n-мерен масив. Разбра се, можете да проверявате и други размерности посредством array_diff_uassoc($array1[0], $array2[0], "key_compare_func");.