У меня есть два массива, и мне нужно сравнить это и вернуть совпадающее значение из 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
)
Это потому, что вы помещаете все значения в нижний регистр. Просто измените на array_uintersect()
и использовать strcasecmp()
в качестве функции обратного вызова, чтобы сравнить их без учета регистра, например так:
$result = array_uintersect($array1, $array2, "strcasecmp");
выход:
Array ( [a] => Green [0] => Red )
Других решений пока нет …