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

#php #sorting #case-sensitive

#php #сортировка #чувствительный к регистру

Вопрос:

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

  1. Apple
  2. Зеленый
  3. Zebra
  4. grass

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

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

  1. Apple
  2. Зеленый
  3. grass
  4. Zebra

Ответ №1:

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

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

Ответ №2:

Существует natcasesort .

 natcasesort($topics);
  

Комментарии:

1. примечание: natcasesort сортирует специальные символы (точки, подчеркивания …) по-разному