Сортировка элементов массива в PHP так, чтобы регистр букв не учитывался.

Когда я использую sort($topics), я получаю что-то вроде:

  1. яблоко
  2. Зеленый
  3. Зебра
  4. трава

В этом примере слово «трава» начинается со строчной буквы g, но заканчивается после слова «зебра» с большой буквы.

Как мне сделать так, чтобы он сортировал его там, где он игнорировал, начинается ли слово с заглавной буквы или нет?

  1. яблоко
  2. Зеленый
  3. трава
  4. Зебра

person Simon Suh    schedule 14.10.2011    source источник


Ответы (2)


Позвоните usort() как usort($topics, 'strnatcasecmp').

strcasecmp тоже подойдет, но strnatcasecmp также будет правильно сортировать, если в строке есть числа.

person ThiefMaster    schedule 14.10.2011

Есть natcasesort.

natcasesort($topics);
person xdazz    schedule 14.10.2011
comment
примечание: natcasesort сортирует специальные символы (точки, подчеркивания ...) по-разному - person Profet; 07.09.2015