如何在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");