PHP: array_uintersect - Manual

downloads | documentation | faq | getting help | mailing lists | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

array_unique array_uintersect_uassoc

Last updated: Sat, 27 Jan 2007

view this page in

# array_uintersect

(PHP 5)

array_uintersect -- Вычислить пересечение массивов, используя для сравнения значений функцию обратного вызова

## Описание

array array_uintersect ( array array1, array array2 [, array ..., callback data_compare_func] )

array_uintersect() возвращает массив, содержащий все значения параметра `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_uintersect_assoc(), array_intersect_uassoc() и array_uintersect_uassoc().

add a note User Contributed Notes
array_uintersect
Nate at RuggFamily dot com
02-Feb-2007 12:03
`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"));
?>`
add a note
array_unique array_uintersect_uassoc

Last updated: Sat, 27 Jan 2007
show source | credits | stats | sitemap | contact | advertising | mirror sites
Copyright © 2001-2007 The PHP Group
All rights reserved.
This mirror generously provided by: Yahoo! Inc.
Last updated: Sat Mar 10 09:32:46 2007 PST