我必须在我正在使用array_diff($ array1,$ array2)方法的应用程序中修改一些代码。我遇到的问题是区分大小写,如果数组值匹配,我需要让它返回正确的值,即使情况不同。我不想将大小写更改为小写,因为我需要返回的值以保持其大小写。我有点困惑是最好的方法。
答案 0 :(得分:10)
$result = array_udiff($arr1, $arr2, 'strcasecmp');
E.g。
<?php
$arr1 = array("string","string","string");
$arr2 = array("String","string","sTRING");
$result = array_udiff($arr1, $arr2, 'strcasecmp');
print_r($result);
?>
$result
应该回复array ( )
答案 1 :(得分:0)
使用
strcasecmp
- 二进制安全不区分大小写的字符串比较
<?php
$var1 = "Hello";
$var2 = "hello";
if (strcasecmp($var1, $var2) == 0) {
echo '$var1 is equal to $var2 in a case-insensitive string comparison';
}
?>
答案 2 :(得分:0)
序列化可以提供帮助,因此您可以在结果字符串上使用strcasecmp:
<?php
$arr1 = array("string","string");
$arr2 = array("String","sTRING");
$equal = (strcasecmp(serialize($arr1), serialize($arr2)) === 0);
?>