sort(), rsort()
Glossary overview

sort(), rsort()

Функция sort() сортирует массив по значениям в порядке возрастания, переиндексируя ключи (то есть сбрасывает ассоциативные ключи в числовые: 0, 1, 2…).

Синтаксис

sort(array &$array, int $flags = SORT_REGULAR): bool

$array — массив, который нужно отсортировать (по ссылке).

$flags — режим сравнения:

  • SORT_REGULAR (по умолчанию)
  • SORT_NUMERIC
  • SORT_STRING
  • SORT_LOCALE_STRING
  • SORT_NATURAL
  • SORT_FLAG_CASE (можно комбинировать с SORT_STRING)

Простой пример:

$numbers = [4, 2, 8, 1];
sort($numbers);

print_r($numbers);
// [1, 2, 4, 8]

Строки:

$names = ['Charlie', 'Alice', 'bob'];
sort($names);

print_r($names);
// ['Alice', 'Charlie', 'bob']

⚠️ bob идёт после Charlie, потому что сортировка чувствительна к регистру (b > C в ASCII).

✅ Чтобы игнорировать регистр:

sort($names, SORT_FLAG_CASE | SORT_STRING);

Ассоциативный массив:

$assoc = ['a' => 5, 'b' => 2, 'c' => 9];
sort($assoc);

print_r($assoc);
// [0 => 2, 1 => 5, 2 => 9]

❗️ Все ключи сбрасываются! Это важно.

Сортировка по убыванию?

Используй rsort():

$numbers = [4, 2, 8, 1];
rsort($numbers);
// [8, 4, 2, 1]

Сравнение функций сортировки в PHP

ФункцияСортировка поСохраняет ключиПоддержка коллбэкаПереиндексируетПодходит дляПример использования
sort()значенияпростых массивовСортировка чисел
rsort()значенияпростых массивовОбратная сортировка строк
asort()значенияассоциативных массивовСохранить ключи при сортировке
arsort()значенияассоциативных массивовОбратная сортировка с ключами
ksort()ключисловарей / конфиговСортировка по ключам
krsort()ключисловарей / конфиговОбратная сортировка по ключам
usort()значениясложных структур (объекты, массивы)Кастомная логика сравнения
uasort()значениясложных ассоциативных массивовСортировка с ключами + коллбэк
uksort()ключиассоциативных массивовКастомная сортировка по ключам
array_multisort()значения (несколько массивов)❌ (переиндексирует)многомерных массивовСортировка по колонке
natsort()значениястрок с числами (v1, v2, v10)Естественная сортировка
natcasesort()значениякак natsort() + без учёта регистраФайлы: page1, page10

🔎 Что значит каждая колонка?

  • Сортировка по — что используется как основа: ключ или значение.
  • Сохраняет ключи — сохраняется ли связь ключей и значений.
  • Поддержка коллбэка — можно ли передать свою функцию сравнения.
  • Переиндексирует — сбрасывает ли ключи в 0,1,2…
  • Подходит для — когда лучше использовать эту функцию.
  • Пример — типичная задача.