如何从array_intersect()获得区分大小写的返回

Ela*_*san 4 php arrays array-intersect

我有两个数组,我需要比较它并从array1返回匹配的值.请参考下面的代码,

$array1 = array("a" => "Green", "Red", "Blue");
$array2 = array("b" => "grEEn", "yellow", "red");
$result = array_intersect(array_map('strtolower', $array1), array_map('strtolower', $array2));

print_r($result);
Run Code Online (Sandbox Code Playgroud)

我的结果是,

Array
(
    [a] => green
    [0] => red
)
Run Code Online (Sandbox Code Playgroud)

但我期望的结果是我想从array1得到它像:

Array
(
    [a] => Green
    [0] => Red
)
Run Code Online (Sandbox Code Playgroud)

Riz*_*123 8

这是因为您将所有值都设置为小写.只需更改为array_uintersect()并使用它strcasecmp()作为回调函数来比较它们不区分大小写,如下所示:

$result = array_uintersect($array1, $array2, "strcasecmp");
Run Code Online (Sandbox Code Playgroud)

输出:

Array ( [a] => Green [0] => Red )
Run Code Online (Sandbox Code Playgroud)