$a = array(1,2,3,4,5);
$b = array(1,6,3,4,5);
echo "<pre>";
print_r(array_udiff($a,$b,function($a,$b){
return ($a === $b)? 0:1;
}));
正如手册所说:
它应该返回一个数组,其中包含任何其他参数中不存在的array1的所有值。
如果只比较两个数组,我认为它就像array_diff()
我希望这会回来:
Array
(
[0] => 2
)
然而它返回:
Array
(
[0] => 1
[1] => 2
[2] => 3
[4] => 5
)
答案 0 :(得分:2)
对于array_udiff()
的value_compare_func参数,“如果第一个参数被认为分别小于,等于或大于0,则比较函数必须返回小于,等于或大于零的整数。第二个。“
http://us1.php.net/manual/en/function.array-udiff.php
这解决了问题,并返回一个项目为2
的数组。
$a = array(1,2,3,4,5);
$b = array(1,6,3,4,5);
echo "<pre>";
print_r(array_udiff($a,$b,function($a,$b){
if ($a < $b) {
return -1;
} elseif ($a > $b) {
return 1;
} else {
return 0;
};
}));