W3docs

PHP Функция rsort()

Разбираем функцию rsort() в PHP: синтаксис, параметры, принцип работы и практические примеры сортировки массивов по убыванию.

В этой статье мы рассмотрим PHP-функцию rsort(), её синтаксис, параметры и принцип работы. Также мы разберём практические примеры использования этой функции в реальных сценариях.

Введение

Сортировка является неотъемлемой операцией при работе с массивами в PHP. Функция rsort() сортирует массив на месте в обратном (убывающем) порядке по значению — наибольшее значение оказывается на индексе 0. Она является аналогом sort() по убыванию и удаляет исходные ключи, переиндексируя массив с 0.

Используйте rsort(), когда у вас есть индексированный список (таблица лидеров, список цен, последние метки времени) и вы хотите получить наибольшие значения первыми, не заботясь об исходных позициях.

Синтаксис

Синтаксис функции rsort() выглядит следующим образом:

rsort($array, $flags);

Функция принимает два параметра: $array и $flags. Параметр $array обязателен и представляет массив, который нужно отсортировать. Параметр $flags необязателен и определяет поведение сортировки. Он может принимать следующие значения:

  • SORT_REGULAR: Сравнивать элементы обычным образом (без изменения типов)
  • SORT_NUMERIC: Сравнивать элементы численно
  • SORT_STRING: Сравнивать элементы как строки
  • SORT_LOCALE_STRING: Сравнивать элементы как строки с учётом текущих настроек локали системы.

Принцип работы

Функция rsort() работает, сравнивая значения в массиве и сортируя их в обратном порядке. Она сравнивает каждое значение со следующим в массиве и меняет их местами, если они стоят не в правильном порядке. Этот процесс продолжается до тех пор, пока весь массив не будет отсортирован.

Обратите внимание: rsort() изменяет исходный массив на месте и возвращает boolean (true при успехе, false при неудаче). Она также последовательно переиндексирует числовые ключи после сортировки.

Практические примеры

Рассмотрим несколько практических примеров использования функции rsort().

Пример 1 — Сортировка числовых значений

php— editable, runs on the server

Вывод:

Array
(
    [0] => 20
    [1] => 15
    [2] => 10
    [3] => 8
    [4] => 5
)

Пример 2 — Сортировка строковых значений

php— editable, runs on the server

Вывод:

Array
(
    [0] => elderberry
    [1] => date
    [2] => cherry
    [3] => banana
    [4] => apple
)

Пример 3 — Сортировка смешанных значений

php— editable, runs on the server

Вывод:

Array
(
    [0] => cherry
    [1] => banana
    [2] => apple
    [3] => 10
    [4] => 8
    [5] => 5
)

При использовании SORT_REGULAR строки сортируются выше чисел, потому что PHP сравнивает значения без принудительного приведения типов. Учтите, что сравнение смешанных типов может давать неожиданные результаты; когда данные действительно смешанные, предпочтительнее использовать явный флаг или пользовательское сравнение через usort().

Распространённые ошибки

  • Ключи теряются. rsort() всегда переиндексирует массив начиная с 0, поэтому все существующие ключи (строковые или числовые) удаляются. Если нужно сохранить связь ключ-значение, используйте arsort().
  • Сортировка по значению, а не по ключу. Для сортировки по ключу в обратном порядке используйте krsort().
  • Она изменяет исходный массив. Поскольку rsort() работает на месте и возвращает только true/false, никогда не пишите $sorted = rsort($array); — в переменную запишется boolean, а не отсортированный массив.

Связанные функции

ФункцияСортирует поПорядокСохраняет ключи?
sort()ЗначениюПо возрастаниюНет
rsort()ЗначениюПо убываниюНет
asort()ЗначениюПо возрастаниюДа
arsort()ЗначениюПо убываниюДа
ksort()КлючуПо возрастаниюДа
krsort()КлючуПо убываниюДа

Для более широкого обзора инструментов сортировки PHP смотрите Сортировка массивов.

Заключение

В этой статье мы рассмотрели функцию rsort() в PHP, её синтаксис, параметры и поведение. Также были приведены практические примеры сортировки числовых, строковых и смешанных массивов.

Если вам нужно отсортировать массив в обратном порядке по значениям, rsort() является надёжным встроенным инструментом. Понимание её поведения при изменении на месте и доступных флагов позволит вам эффективно управлять сортировкой массивов в ваших PHP-проектах.

Практика

Практика
Что делает функция rsort в PHP?
Что делает функция rsort в PHP?
Was this page helpful?