I want to stress that in the user function, you do need to return either a 1 or a -1 properly; you cannot simply return 0 if the results are equal and 1 if they are not.
The following code is incorrect:
<?php
function myfunction($v1,$v2)
{
if ($v1===$v2)
{
return 0;
}
return 1;
}
$a1=array(1, 2, 4);
$a2=array(1, 3, 4);
print_r(array_uintersect($a1,$a2,"myfunction"));
?>
This code is correct:
<?php
function myfunction($v1,$v2)
{
if ($v1===$v2)
{
return 0;
}
if ($v1 > $v2) return 1;
return -1;
}
$a1=array(1, 2, 4);
$a2=array(1, 3, 4);
print_r(array_uintersect($a1,$a2,"myfunction"));
?>
array_uintersect
(PHP 5)
array_uintersect — Изчислява сечението на масиви, сравнявайки данните посредством функция за обратно извикване
Описание
Изчислява сечението на масиви, сравнявайки данните посредством функция за обратно извикване.
Параметри
- array1
-
Първият масив.
- array2
-
Вторият масив.
- data_compare_func
-
Функцията за обратно извикване, която ще извърши сравняването.
За сравнение се използва потребителска функция за обратно извикване. Тя трябва да връща цяло число, по-малко, равно или по-голямо от 0, ако първият параметър е съответно по-малък, равен или по-голям от втория.
Връщани стойности
Връща масив съдържащ всички стойности от array1 , чийто стойности съществуват във всеки един от параметрите.
Примери
Example #1 Пример за array_uintersect()
<?php
$array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");
$array2 = array("a" => "GREEN", "B" => "brown", "yellow", "red");
print_r(array_uintersect($array1, $array2, "strcasecmp"));
?>
Примерът по-горе ще изведе:
Array
(
[a] => green
[b] => brown
[0] => red
)
Вж. също
- array_intersect() - Изчислява сечението на масиви
- array_intersect_assoc() - Изчислява сечението на масиви с проверка на индекса
- array_uintersect_assoc() - Изчислява сечението на масиви с допълнителна проверка на индекса, сравнявайки данните посредством функция за обратно извикване
- array_uintersect_uassoc() - Изчислява сечението на масиви с допълнителна проверка на индекса, сравнявайки данните и индексите посредством функция за обратно извикване
array_uintersect
02-Feb-2007 08:03
