Как сделать сортировку php

Добавил пользователь Morpheus
Обновлено: 04.10.2024

Элементы в массиве, могут быть отсортированы в алфавитном или числовом порядке, по убыванию или по возрастанию.

PHP Функции сортировки массивов

В этой главе мы рассмотрим следующие функции сортировки массива PHP:

  • sort() - сортировка массивов в порядке возрастания
  • rsort() - сортировка массивов в порядке убывания
  • asort() - сортировать ассоциативный массив в порядке возрастания значений
  • ksort() - сортировка ассоциативных массивов в порядке возрастания в соответствии с ключом
  • arsort() - сортировка ассоциативных массивов в порядке убывания в соответствии со значением
  • krsort() - сортировка ассоциативных массивов в порядке убывания в соответствии с ключом

PHP Сортировка массива в порядке возрастания

В следующем примере выполняется сортировка элементов массива $cars в алфавитном порядке:

Пример

В следующем примере сортируются элементы массива $numbers в порядке возрастания цифровой последовательности:

Пример

PHP Сортировка массива в порядке убывания

В следующем примере выполняется сортировка элементов массива $cars в алфавитном порядке по убыванию:

Пример

В следующем примере выполняется сортировка элементов массива $numbers в порядке убывания цифровой последовательности:

Пример

PHP Сортировка массива по возрастанию, со значением

В следующем примере выполняется сортировка ассоциативного массива по возрастанию, в соответствии со значением:

Пример

PHP Сортировка массива по возрастанию, по ключу

В следующем примере выполняется сортировка ассоциативного массива по возрастанию, согласно ключу:

Пример

PHP Сортировка массива по убыванию, по значению

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

Пример

PHP Сортировка массива по убыванию, по ключу

Следующий пример сортирует ассоциативный массив в порядке убывания, согласно ключу:

Пример

PHP Полный справочник массива

Для полной справки всех функций массива, перейдите к нашему полному PHP Справочник массивов.

Справочник содержит краткое описание и примеры использования каждой функции!

Упражнения

Тесты

КАК СДЕЛАТЬ

ПОДЕЛИТЬСЯ

СЕРТИФИКАТЫ

Если вы хотите сообщить об ошибке или сделать предложение, не стесняйтесь, присылайте нам электронное письмо:

Ваше предложение:

Спасибо, за вашу помощь!

Топ Учебники

Топ Справочники

Топ Примеры

Веб Сертификаты

SchoolsW3 оптимизирован для обучения, тестирования и тренировки. Примеры упрощают и улучшают чтение и базовое понимание. Учебники, справочники, примеры постоянно пересматриваются, для того, чтобы избежать ошибки, невозможно гарантировать правильность всего содержимого. Используя данный сайт, вы соглашаетесь прочитать и принять условия использования, cookie и Политика конфиденциальности. Авторское право 1999 - 2022 Все права защищены.
Работает на W3.CSS.

В PHP так много различного функционала для работы с массивами, а вот для объектов порой приходится изобретать велосипеды снова и снова. Так какой велосипед сегодня?
На днях возникла совершенно, казалось бы, элементарная задача — отсортировать множество объектов, полученное из базы данных в виде rowset. Функции сортировки работают с массивами и нет им дела до объектов. Вот тут нам на помощь приходит функция сортировки с использованием определенной пользователем функцией — usort( array &$array, callback $cmp_function). Вторым аргументом как раз и можем сделать нашу операцию сравнения объектов.
Допустим, мы получили из базы данных множество городов мира. Для одной задачи нам необходимо отсортировать эти города по количеству населения, для другой — по среднегодовой температуре, для третьей — в алфавитном порядке по названию города. Не делать же для этого три различных запроса в базу. Так что приступаем к реализации сортировки.

function sortByPopulation($city1, $city2) if ($city1->Population == $city2->Population)
return 0;
return ($city1->Population > $city2->Population) ? -1 : 1;
>
?>

* This source code was highlighted with Source Code Highlighter .

В общем-то готово, но сюда так и просятся замыкания, ведь правда?

if ($city1->Population == $city2->Population) return 0;
return ($city1->Population > $city2->Population) ? -1 : 1;>);

* This source code was highlighted with Source Code Highlighter .

А если все это обернем в функцию и идентификатор сделаем переменной, то получится вполне полезная функция сортировки объектов

if ($object1->$sortBy == $object2->$sortBy) return 0;
return ($object1->$sortBy > $object2->$sortBy) ? -1 : 1;>);

return $objectSetForSort;
>
?>

* This source code was highlighted with Source Code Highlighter .

Сортировка относится к упорядочиванию элементов массива в алфавитном, числовом порядке с возрастанием или убыванием в соответствии с некоторой линейной зависимостью между элементами. Сортировка массивов значительно повышает эффективность поиска.

Функции PHP для сортировки массивов

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

  • sort() — сортирует массивы в порядке возрастания
  • rsort() — сортирует массивы в порядке убывания
  • asort() — сортирует ассоциативные массивы в порядке возрастания по значению
  • ksort() — сортирует ассоциативные массивы в порядке возрастания по ключу
  • arsort() — сортирует ассоциативные массивы в порядке убывания по значению
  • krsort() — сортирует ассоциативные массивы в порядке убывания по ключу

Сортировка массивов по возрастанию

Функция sort() используется для сортировки элементов индексированного массива в порядке возрастания (в алфавитном порядке для букв):

Пример

Результат выполнения кода:

Аналогично вы можете отсортировать числовые элементы массива в порядке возрастания:

Пример

Результат выполнения кода:

Сортировка массивов по убыванию

Функция rsort() используется для сортировки элементов индексированного массива в порядке убывания (в алфавитном порядке для букв):

Пример

Результат выполнения кода:

Точно так же вы можете отсортировать числовые элементы массива в порядке убывания:

Пример

Результат выполнения кода:

Сортировка ассоциативных массивов в порядке возрастания по значению

Функция asort() сортирует элементы ассоциативного массива в порядке возрастания в соответствии со значением. Принцип её работы аналогичен функции sort() , но при сортировке сохраняется связь между ключами и их значениями:

Пример

Результат выполнения кода:

Сортировка ассоциативных массивов по значению в порядке убывания

Функция arsort() сортирует элементы ассоциативного массива в порядке убывания в соответствии со значением. Принцип её работы аналогичен функции rsort() , но при сортировке сохраняет связь между ключами и их значениями:

Пример

Результат выполнения кода:

Сортировка ассоциативных массивов в порядке возрастания по ключу

Функция ksort() сортирует элементы ассоциативного массива в порядке возрастания по их ключам. Она сохраняет связь между ключами и их значениями при сортировке, так же как и функция asort() :

Пример

Результат выполнения кода:

Сортировка ассоциативных массивов в порядке убывания по ключу

Функция krsort() сортирует элементы ассоциативного массива в порядке убывания по их ключам . Она сохраняет связь между ключами и их значениями при сортировке, так же как и функция arsort() :

Для сортировки массивов в PHP существует несколько функций: sort - по возрастанию элементов, rsort - по убыванию элементов, asort - по возрастанию элементов с сохранением ключей, arsort - по убыванию элементов с сохранением ключей, ksort - по возрастанию ключей, krsort - по убыванию ключей, usort - по функции по элементам, uasort - по функции по элементам с сохранением ключей, uksort - по функции по ключам, natsort - натуральная сортировка.

Все эти функции изменяют сам массив - это значит, что результат не нужно никуда присваивать: поменяется сам массив.

Читайте также: