【发布时间】:2017-10-21 18:26:35
【问题描述】:
我想知道如何在 PHP 中比较 2 个数组是否匹配。我用过array_intersect($arr1, $arr2)。我希望匹配不区分大小写。
示例:
$arr1 = ['hello', 'how', 'are', 'you'];
$arr2 = ['Hello', 'fine', 'You'];
预期输出
['hello','you']
谢谢!
【问题讨论】:
标签: php comparison
我想知道如何在 PHP 中比较 2 个数组是否匹配。我用过array_intersect($arr1, $arr2)。我希望匹配不区分大小写。
示例:
$arr1 = ['hello', 'how', 'are', 'you'];
$arr2 = ['Hello', 'fine', 'You'];
预期输出
['hello','you']
谢谢!
【问题讨论】:
标签: php comparison
如果结果可以全小写,可以like this:
$result = array_intersect(array_map('strtolower', $arr1), array_map('strtolower', $arr2));
否则,您可以使用array_uintersect,它需要一个回调来进行字符串比较。然后您可以使用strcasecmp 进行不区分大小写的字符串比较。
$result = array_uintersect($arr1, $arr2, "strcasecmp");
【讨论】:
您可以通过将两个数组传递给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" ]
【讨论】: