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 — Computes the intersection of arrays, compares data by a callback function
설명
array array_uintersect
( array $array1
, array $array2
[, array $ ...
], callback $data_compare_func
)
Computes the intersection of arrays, compares data by a callback function.
인수
- array1
-
The first array.
- array2
-
The second array.
- data_compare_func
-
The callback comparison function.
The user supplied callback function is used for comparison. It must return an integer less than, equal to, or greater than zero if the first argument is considered to be respectively less than, equal to, or greater than the second.
반환값
Returns an array containing all the values of array1 that are present in all the arguments.
예제
Example #1 array_uintersect() example
<?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() - Computes the intersection of arrays with additional index check, compares data by a callback function
- array_uintersect_uassoc() - Computes the intersection of arrays with additional index check, compares data and indexes by a callback functions
array_uintersect
Nate at RuggFamily dot com
02-Feb-2007 08:03
02-Feb-2007 08:03
