今天看书,书中有一个例子用到了array_udiff,查了下手册,经过测试,还是对其一知半解.
$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;
}));
我希望的得到的结果:
Array
(
[0] => 2
)
实际结果
Array
(
[0] => 1
[1] => 2
[2] => 3
[4] => 5
)
------解决方案--------------------
总是要按规矩来
array_udiff($a, $b, function($a, $b){
if($a == $b) return 0;
return $a > $b ? 1 : -1;
})
如果认为第一个参数小于,等于,或大于第二个参数时必须分别返回一个小于零,等于零,或大于零的整数。