我很难理解array_udiff()
在PHP中是如何工作的。
我已经阅读了一些使用整数的类似帖子。但我主要担心的是这一点。
基于以下代码:
array_udiff
如何知道$string1
是否大于$string2
? $string1 = array("a1" => "John", "b1" => "Mike"); $string2 = array("a1" => "Tony", "b2" => "John"); function check($string1, $string2){ if($string1 > $string2){ return 1; } else { return -1; } }
答案 0 :(得分:0)
array_udiff()认为返回0或false,在你的情况下意味着返回false。 这意味着不会采取错误的结果。 在集理论中你的问题结果是(约翰,迈克) - b(托尼,约翰)= a(约翰,迈克):但这是不完整的。
尝试此测试:
$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)