我想知道如何比较PHP中的2个数组以进行匹配。我使用了array_intersect($arr1, $arr2)
。我希望匹配不区分大小写。
示例:
$arr1 = ['hello', 'how', 'are', 'you'];
$arr2 = ['Hello', 'fine', 'You'];
预期输出
['hello','you']
谢谢!
答案 0 :(得分:2)
如果结果全部为小写,则可以like this:
$result = array_intersect(array_map('strtolower', $arr1), array_map('strtolower', $arr2));
否则,您可以使用array_uintersect
进行字符串比较的回调。然后,您可以使用strcasecmp
进行不区分大小写的字符串比较。
$result = array_uintersect($arr1, $arr2, "strcasecmp");
答案 1 :(得分:1)
您可以通过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" ]