我正在使用这段代码来比较两个数组。
<?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)
。我尝试了这个,但没有工作。任何帮助。
提前谢谢。
答案 0 :(得分: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 )
答案 1 :(得分: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);