需要帮助了解array_udiff的工作原理

时间:2014-08-13 03:52:17

标签: php arrays

我很难理解array_udiff()在PHP中是如何工作的。

我已经阅读了一些使用整数的类似帖子。但我主要担心的是这一点。

基于以下代码:

  1. array_udiff如何知道$string1是否大于$string2
  2. 返回负数或正数是什么意思?
  3. $string1 = array("a1" => "John", "b1" => "Mike");
    $string2 = array("a1" => "Tony", "b2" => "John");    
    
    function check($string1, $string2){
        if($string1 > $string2){
            return 1;
        } else {
            return -1;
        }
    }
    

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.' &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)