Сортировка индексных массивов по убыванию
Часть раздела Логика и управление потоком путешествия по PHP на Coddy — урок 21 из 68.
Когда вам нужно отсортировать данные в обратном порядке — от большего к меньшему или от Я до А — функция PHP rsort() предоставляет идеальное решение. Эта функция работает точно так же, как sort(), но упорядочивает элементы по убыванию, а не по возрастанию.
Вот как rsort() работает с массивом оценок:
<?php
$scores = [78, 95, 82, 91, 87];
rsort($scores);
print_r($scores);
// Вывод: Array ( [0] => 95 [1] => 91 [2] => 87 [3] => 82 [4] => 78 )
?>Так же, как и sort(), функция rsort() изменяет исходный массив напрямую, а не создает новую отсортированную копию. После вызова rsort() ваш массив окончательно переупорядочивается в порядке убывания.
Эта функция особенно полезна, когда вы хотите отобразить рейтинги, таблицы лидеров или любые данные, в которых самые высокие значения должны стоять первыми. Независимо от того, работаете ли вы с результатами тестов, показателями продаж или алфавитными списками, требующими обратной сортировки, rsort() эффективно справляется с этой задачей.
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Задание
ЛегкоВы получите один входной параметр: массив показателей продаж в формате JSON. Прочитайте входные данные, преобразуйте строку JSON в массив, используйте rsort() для сортировки показателей продаж в порядке убывания и выведите отсортированный массив с помощью print_r().
Формат входных данных: Одна строка, содержащая JSON-массив чисел (например: [1250,3400,890,2100,1780])
Ожидаемый результат: Отсортированный в порядке убывания массив, отображаемый с помощью print_r()
Шпаргалка
Функция rsort() сортирует массивы в порядке убывания (от большего к меньшему):
<?php
$scores = [78, 95, 82, 91, 87];
rsort($scores);
print_r($scores);
// Вывод: Array ( [0] => 95 [1] => 91 [2] => 87 [3] => 82 [4] => 78 )
?>Как и sort(), rsort() изменяет исходный массив напрямую, а не создает новую отсортированную копию.
Попробуйте сами
<?php
// Чтение входных данных
$input = trim(fgets(STDIN));
// Преобразование строки JSON в массив
$sales = json_decode($input, true);
// TODO: Напишите ниже свой код для сортировки массива в порядке убывания
// Вывод отсортированного массива
print_r($sales);
?>В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Логика и управление потоком
1Продвинутые функции
Анонимные функцииЗамыкания и 'use'Стрелочные функцииCallback-функцииИспользование 'call_user_func'Функции переменныхПередача по ссылкеРекурсивные функцииИтоги: ассорти из функций4Многомерные массивы
Создание 2D-массиваДоступ к элементам 2D-массиваИзменение элементов 2D-массиваИтерация с вложенными цикламиДвумерные ассоциативные массивыИтоги: Упражнение «Простая сетка»2Продвинутая работа с массивами
Добавление с помощью 'array_push'Удаление с помощью 'array_pop'Добавление с помощью 'array_unshift'Удаление с помощью 'array_shift'Слияние индексных массивовСлияние ассоциативных массивовИзвлечение с помощью 'array_slice'Поиск значений с 'in_array'Поиск ключей с 'array_search'Итоги: Упражнение «Плейлист»3Сортировка массивов
Сортировка индексных массивов по возрастаниюСортировка индексных массивов по убываниюСортировка ассоциативных массивов по значениюСортировка ассоциативных массивов по ключуСортировка в естественном порядкеПользовательская сортировка с помощью 'usort'Итоги: Сортировка таблицы лидеров