我很难理解array_udiff()
在PHP中的工作原理。
我读过一些类似的帖子,其中使用整数。但我主要担心的是这个。
基于以下代码:
-
array_udiff
如何知道$string1
是否大于$string2
? - 返回一个负数或正数的意义是什么?
array_udiff()考虑返回0或false,在您的情况下意味着返回false。这意味着不接受错误的结果。在集合论中,你的问题结果a(john,mike) - b(tony,john) = a(john,mike):但这是不完整的。
试着测试:
$string1 = array("a1" => "John", "b1" => "Mike");
$string2 = array("a1" => "Tony", "b2" => "John");
function check($string1, $string2){
if($string1 > $string2){
echo $string1.' > '.$string2.' test1<br >';
return 1;
}else if($string1 < $string2){
echo $string1.' < '.$string2.' test2<br />';
return -1;
}else{
echo $string1.' - '.$string2.' test3<br />';
return 0;
}
}
print_r(array_udiff($string1, $string2, 'check'));
Mike > John test1
John < Tony test2
John - John test3
John < Mike test2
Mike < Tony test2
result: Array ( [b1] => Mike )
a(john,mike) - b(tony,john) = a(mike)