Функция sort() сортирует массив по значениям в порядке возрастания, переиндексируя ключи (то есть сбрасывает ассоциативные ключи в числовые: 0, 1, 2…).
Синтаксис
sort(array &$array, int $flags = SORT_REGULAR): bool
$array — массив, который нужно отсортировать (по ссылке).
$flags — режим сравнения:
SORT_REGULAR(по умолчанию)SORT_NUMERICSORT_STRINGSORT_LOCALE_STRINGSORT_NATURALSORT_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…
- Подходит для — когда лучше использовать эту функцию.
- Пример — типичная задача.