Как использовать in_array () для caseless? - PullRequest
1 голос
/ 25 июня 2009

Это большой массив, так что я не буду подчеркивать каждое значение.

Ответы [ 3 ]

7 голосов
/ 25 июня 2009

Используйте preg_grep с флагом нечувствительности к регистру «i»:

$result = preg_grep('/pattern/i', $array);
1 голос
/ 25 июня 2009

Попробуйте, используя функцию strcasecmp :

$array = array('foo', 'bar', 'baz', 'quux');
$needle = 'FOO';

$hit = false;
foreach ($array as $elem) {
    if (is_string($elem) && strcasecmp($needle, $elem) == 0) {
        $hit = true;
        break;
    }
}
var_dump($hit);
0 голосов
/ 25 июня 2009

Как я знаю, есть только путь с strtolower. Смотрите также комментарий в PHP документ: http://ch2.php.net/manual/en/function.in-array.php#88554

Edit: Как видно из комментария, существует , конечно, , более чем один способ его решения. Я, вероятно, скучаю по написанному, что я пытался сказать ;-). К сожалению.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...