Массивы. Поиск без учета регистра.

Krisha

pain in the neck
Массивы. Поиск без учета регистра.

Покопал мануал, функции array_search и in_array обе case-sensitive, я чего-то не нашел или придется ручками все значения массива перегонять в нужный регистр перед поиском в нем ?
 
или придется ручками все значения массива перегонять в нужный регистр перед поиском в нем ?
а не проще, в нужный регистр перегнать именно запрос поиска...?
и поиск гнать два раза...
 

Krisha

pain in the neck
Сорри, я немного неточно выразился, имелось в виду нечто вроде:
PHP:
$string = strtolower($string);

foreach ($myArray as $value) {
  if ($string == strtolower($value)) {
      echo "oops...";
  }
}
 

lucas

Guest
Я думаю, если идти по пути приведения всех значений массива к одному регистру, то лучше использовать array_map + strto*er, чем foreach.
 

Krisha

pain in the neck
lucas
Как вариант, но это не отвечает на главный вопрос, нужно ли это делать вообще, может быть есть уже готовая функция, кот. я просто не нашел в мане :)
 

lucas

Guest
Krisha

Просмотрел мануал -- что-то case-insensitive функция для поиска не ищется. :)

С другой стороны, если использовать array_walk, array_map или array_filter, то поиск с доп. условиями может получиться довольно красивый.
(Т. е. не приводим массив к опр. формату для поиска стандартной функцией, а сразу ищем/фильтруем callback'ом.)
 
Сверху