如何在php中比较两个数组(不区分大小写)php

问题描述:

我想知道如何比较PHP中的两个数组用于匹配。我用过array_intersect($arr1, $arr2)。我希望比赛不区分大小写。如何在php中比较两个数组(不区分大小写)php

例子:

$arr1 = ['hello', 'how', 'are', 'you']; 
$arr2 = ['Hello', 'fine', 'You']; 

期望输出

['hello','you'] 

谢谢!

您可以通过array_map()为了第一个同时传递阵列strtolower()(或strtoupper())他们很简单地实现这一点:

$arr1 = ['hello', 'how', 'are', 'you']; 
$arr2 = ['Hello', 'fine', 'You']; 

var_dump(
    array_intersect(
     array_map('strtolower', $arr1), 
     array_map('strtolower', $arr2) 
    ) 
); 

// [ "hello", "you" ] 

如果结果可以在全部小写,你可以做到这一点like this

$result = array_intersect(array_map('strtolower', $arr1), array_map('strtolower', $arr2)); 

否则,您可以使用array_uintersect这需要一个回调的字符串比较。然后,您可以使用strcasecmp进行不区分大小写的字符串比较。

$result = array_uintersect($arr1, $arr2, "strcasecmp");