2天前,我問了這個問題(I am confused on the issue,how to use array_udiff)。
我很抱歉再次討論這個問題。
雖然我已經得到了解決問題的方法,但我對這個問題仍然感到困惑:
demo1的:關於array_udiff,我想再問一次
function myfunction($v1,$v2)
{
if ($v1===$v2)
{
return 0;
}
return 1;
}
$a1=array("a"=>"Cat","b"=>"Dog","c"=>"Horse");
$a2=array(1=>"Cat",2=>"Dog",3=>"Fish");
print_r(array_udiff($a1,$a2,"myfunction"));
輸出:
Array ([c] => Horse)
DEMO2:
function myfunction($v1,$v2)
{
if ($v1===$v2)
{
return 0;
}
return 1;
}
$a1 = array(1,2,3,4,5);
$a2 = array(1,6,3,4,5);
print_r(array_udiff($a1,$a2,"myfunction"));
我預計這會返回:
Array ([0] => 2)
但輸出是:
Array ([0] => 1 [1] => 2 [2] => 3 [4] => 5)
是的,我知道,我需要根據PHP手冊,
demo3:
function myfunction($v1,$v2) {
if ($v1 < $v2) {
return -1;
} elseif ($v1 > $v2) {
return 1;
} else {
return 0;
}
}
$a1 = array(1,2,3,4,5);
$a2 = array(1,6,3,4,5);
print_r(array_udiff($a1,$a2,"myfunction"));
輸出:
Array ([1] => 2)// it's right
我感到困惑的是,爲什麼demo1沒問題。
您期望使用回調函數的輸出是什麼? – tlenss