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

时间:2017-10-21 18:26:36

标签: php comparison

我想知道如何比较PHP中的2个数组以进行匹配。我使用了array_intersect($arr1, $arr2)。我希望匹配不区分大小写。

示例:

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

预期输出

['hello','you']

谢谢!

2 个答案:

答案 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" ]