需要帮助理解array_udiff是如何工作的


Need help understanding how array_udiff works

我很难理解array_udiff()在PHP中的工作原理。

我读过一些类似的帖子,其中使用整数。但我主要担心的是这个。

基于以下代码:

  1. array_udiff如何知道$string1是否大于$string2 ?
  2. 返回一个负数或正数的意义是什么?
<>之前$string1 = array("a1" => "John", "b1" => "Mike");$string2 = array("a1" => "Tony", "b2" => "John");函数检查($string1, $string2){如果($string1> $string2){返回1;} else {返回1;}}

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.' &gt '.$string2.' test1<br >';
        return 1;
    }else if($string1 < $string2){
        echo $string1.' &lt '.$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)