(PHP 5)
array_udiff — Изчислява разлика на масиви посредством функция за обратно извикване за сравнение на данните
Изчислява разликата на масиви посредством функция за обратно извикване използвана при сравнението. За разлика от нея, функция array_diff() използва вътрешна функция за сравняване на данните.
Първият масив.
Вторият масив.
Функцията за обратно извикване използвана за сравнението.
За сравнението се използва потребителски-дефинирана функция за обратно извикване. Тя трябва да връща цяло число по-малко, равно или по-голямо от нула, ако първият аргумент се счита съответно за по-малък, равен или по-голям от втория.
Връща масив, съдържащ всички стойности на array1 , които не са налични в нито един от другите аргументи.
Example #1 Пример за array_udiff()
<?php
class cr {
private $priv_member;
function cr($val)
{
$this->priv_member = $val;
}
static function comp_func_cr($a, $b)
{
if ($a->priv_member === $b->priv_member) return 0;
return ($a->priv_member > $b->priv_member)? 1:-1;
}
}
$a = array("0.1" => new cr(9), "0.5" => new cr(12), 0 => new cr(23), 1=> new cr(4), 2 => new cr(-15),);
$b = array("0.2" => new cr(9), "0.5" => new cr(22), 0 => new cr(3), 1=> new cr(4), 2 => new cr(-15),);
$result = array_udiff($a, $b, array("cr", "comp_func_cr"));
print_r($result);
?>
Примерът по-горе ще изведе:
Array ( [0.5] => cr Object ( [priv_member:private] => 12 ) [0] => cr Object ( [priv_member:private] => 23 ) )
Забележка: Моля забележете, че функцията проверява само една размерност при n-мерните масиви. Разбира се може да проверите и другите размерности посредством array_udiff($array1[0], $array2[0], "data_compare_func");.