(PHP 4, PHP 5, PHP 7, PHP 8)
sort — Сортирует массив по возрастанию
Функция сортирует массив array
на месте по значениям в порядке возрастания.
Замечание:
Функция сохраняет первоначальный порядок элементов, если при сравнении значения двух элементов равны. До PHP 8.0.0 порядок элементов в отсортированном массиве оставался неопределённым.
Замечание: Функция присваивает новые ключи элементам массива, который передали в аргументе
array
. Функция удалит, а не просто переупорядочит ключи входного массива.
Замечание:
Функция сбрасывает внутренний указатель массива на первый элемент.
array
Входной массив.
flags
Необязательный второй параметр flags
изменяет поведение сортировки и принимает следующие значения:
Флаги типов сортировки:
SORT_REGULAR
— обычное сравнение элементов;
подробности описаны в разделе операторы сравнения
SORT_NUMERIC
— числовое сравнение элементов
SORT_STRING
— строковое сравнение элементов
SORT_LOCALE_STRING
— сравнение элементов как
строк на основе текущего языкового стандарта. Флаг использует языковой стандарт,
который можно изменить функцией setlocale()
SORT_NATURAL
— сравнение элементов как строки,
используя "естественный порядок", например natsort()
SORT_FLAG_CASE
— можно объединять
(побитовое ИЛИ) с
SORT_STRING
или
SORT_NATURAL
для сортировки строк без учёта регистра
Функция возвращает логическое значение true
.
Версия | Описание |
---|---|
8.2.0 |
Значение возврата теперь принадлежит типу true ; раньше значение принадлежало типу bool.
|
Пример #1 Пример сортировки массива по возрастанию функцией sort()
<?php
$fruits = array("lemon", "orange", "banana", "apple");
sort($fruits);
foreach ($fruits as $key => $val) {
echo "fruits[" . $key . "] = " . $val . "\n";
}
?>
Результат выполнения приведённого примера:
fruits[0] = apple fruits[1] = banana fruits[2] = lemon fruits[3] = orange
Функция отсортировалв фрукты в алфавитном порядке.
Пример #2 Пример сортировки массива функцией sort() с регистронезависимым естественным упорядочением
<?php
$fruits = array(
"Orange1", "orange2", "Orange3", "orange20"
);
sort($fruits, SORT_NATURAL | SORT_FLAG_CASE);
foreach ($fruits as $key => $val) {
echo "fruits[" . $key . "] = " . $val . "\n";
}
?>
Результат выполнения приведённого примера:
fruits[0] = Orange1 fruits[1] = orange2 fruits[2] = Orange3 fruits[3] = orange20
Функция отсортировала фрукты аналогично функции natcasesort().
Замечание: Как и бóльшая часть функций сортировки в PHP, функция sort() сортирует элементы массива алгоритмом » быстрой сортировки. Опорный элемент выбирается из середины сортируемой части, чтобы обработать уже отсортированный массив за оптимальное время. Лучше не полагаются на эту информацию, поскольку это только деталь реализации.
Массивы с разнотипными элементами сортируют осторожно,
поскольку при установке флага SORT_REGULAR
для параметра flags
функции sort() иногда возвращает неожиданные результаты.