Как я могу получить регистрозависимый возврат из 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);

Мой результат,

Array
(
[a] => green
[0] => red
)

Но мой ожидаемый результат — я хочу получить его из array1, например:

Array
(
[a] => Green
[0] => Red
)

4

Решение

Это потому, что вы помещаете все значения в нижний регистр. Просто измените на array_uintersect() и использовать strcasecmp() в качестве функции обратного вызова, чтобы сравнить их без учета регистра, например так:

$result = array_uintersect($array1, $array2, "strcasecmp");

выход:

Array ( [a] => Green [0] => Red )
8

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]