开发者

PHP ignore case sensitivity when comparing array values

开发者 https://www.devze.com 2022-12-23 16:32 出处:网络
I have to modify some code in a application I am working on that is using the array_diff($array1,$array2) method. The problem I am having is it is case sensitive and I need to have it return the corre

I have to modify some code in a application I am working on that is using the array_diff($array1,$array2) method. The problem I am having is it is case sensitive and I need to have it return the correct value if the array values match even if the case is different. I don't want to change the case to lowercase because I need the value returned to keep its case. I'm a little confused as the 开发者_C百科best method to do this.


You need: array_udiff and strcasecmp

$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 should echo array ( )


Use

strcasecmp — Binary safe case-insensitive string comparison

<?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


Serializing can help, so you can use strcasecmp on the resulting strings:

<?php

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

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

?>
0

精彩评论

暂无评论...
验证码 换一张
取 消