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 — Вычисляет пересечение массивов, используя для сравнения значений callback-функцию
Описание
array array_uintersect
( array
$array1
, array $array2
[, array $ ...
], callable $data_compare_func
)Вычисляет пересечение массивов, используя для сравнения значений callback-функцию.
Список параметров
-
array1 -
Первый массив.
-
array2 -
Второй массив.
-
data_compare_func -
Функция сравнения должна возвращать целое, которое меньше, равно или больше нуля, если первый аргумент является соответственно меньшим, равным или большим чем второй.
Возвращаемые значения
Возвращает массив, содержащий все элементы array1,
которые существуют во всех остальных аргументах.
Примеры
Пример #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() - Вычисляет пересечение массивов с дополнительной проверкой индексов, используя для сравнения значений callback-функцию
- array_uintersect_uassoc() - Вычисляет пересечение массивов с дополнительной проверкой индекса, используя для сравнения индексов и значений callback-функцию
Nate at RuggFamily dot com ¶
6 years ago
