sort

(PHP 4, PHP 5, PHP 7, PHP 8)

sortСортирует массив по возрастанию

Описание

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

Функция сортирует массив array на месте по значениям в порядке возрастания.

Замечание: Функция сохраняет первоначальный порядок элементов, если при сравнении значения двух элементов равны. До PHP 8.0.0 взаимный порядок одинаковых по значению элементов в отсортированном массиве оставался неопределённым.

Замечание: Функция присваивает новые ключи элементам массива, который передали в аргументе array. Функция удалит, а не просто переупорядочит ключи входного массива.

Замечание: Функция сбрасывает внутренний указатель массива на первый элемент.

Список параметров

array

Входной массив.

flags
Необязательный второй параметр flags изменяет поведение сортировки и принимает следующие значения:

Флаги типов сортировки:

  • SORT_REGULAR — обычное сравнение элементов; подробности описаны в разделе операторы сравнения
  • SORT_NUMERIC — числовое сравнение элементов
  • SORT_STRING — строковое сравнение элементов
  • SORT_LOCALE_STRING — сравнение элементов как строк на основе текущего языкового стандарта. Флаг использует языковой стандарт, который доступен для изменения4 функцией setlocale()
  • SORT_NATURAL — сравнение элементов как строк на основе «естественного порядка» наподобие natsort()
  • SORT_FLAG_CASE — флаг объединяют через побитовое ИЛИ с флагом SORT_STRING или SORT_NATURAL для сортировки строк без учёта регистра

Возвращаемые значения

Функция возвращает логическое значение true.

Список изменений

Версия Описание
8.2.0 Вместо общего логического типа bool теперь возвращается конкретный тип true.

Примеры

Пример #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() иногда возвращает неожиданные результаты.

Смотрите также