0

我正在使用这段代码来比较两个数组。

<?php
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"));
?>

该函数适用于这些数组。但我想使用 php strpos 函数而不是===运算符来比较两个值,即if(strpos($v1,$v2) === true)。我试过这个但没有工作。任何帮助。提前致谢。

4

2 回答 2

2

您可以尝试(注意我使用stripos的是在字符串中查找不区分大小写的子字符串)

function myfunction($v1, $v2) {
    if (stripos($v1, $v2) !== false) {
        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 )
于 2012-12-06T18:45:50.397 回答
0

由于您使用的是蛋糕 1.3。您可以使用 diff ( http://book.cakephp.org/1.3/en/The-Manual/Core-Utility-Libraries/Set.html#diff ) 这是一个核心实用程序,非常方便。该手册页上还有其他数组函数。

$result = Set::diff($a1, $a2);
print_r($result);
于 2012-12-07T16:48:40.617 回答