PHP在比较数组值时忽略区分大小写

时间:2010-03-19 03:55:07

标签: php

我必须在我正在使用array_diff($ array1,$ array2)方法的应用程序中修改一些代码。我遇到的问题是区分大小写,如果数组值匹配,我需要让它返回正确的值,即使情况不同。我不想将大小写更改为小写,因为我需要返回的值以保持其大小写。我有点困惑是最好的方法。

3 个答案:

答案 0 :(得分:10)

您需要:array_udiffstrcasecmp

$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';
}
?>

Refer this link for more information

答案 2 :(得分:0)

序列化可以提供帮助,因此您可以在结果字符串上使用strcasecmp:

<?php

$arr1 = array("string","string");
$arr2 = array("String","sTRING");

$equal = (strcasecmp(serialize($arr1), serialize($arr2)) === 0);

?>