skillbox banner 468x60skillbox banner 728x90skillbox banner 930x180flexbe banner 468x60flexbe banner 728x90flexbe banner 930x180beget banner 468x60beget banner 728x90beget banner 930x180

Руководство по сортировке массивов в PHP

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

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

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

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

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

<?php
// Определяем массив
$colors = array("Red", "Green", "Blue", "Yellow");

// Сортируем и печатаем массив
sort($colors);
print_r($colors);

// Выводит: Array ( [0] => Blue [1] => Green [2] => Red [3] => Yellow )
?>

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

<?php
// Определяем массив
$numbers = array(1, 2, 2.5, 4, 7, 10);

// Сортируем и печатаем массив
sort($numbers);
print_r($numbers);

// Выводит: Array ( [0] => 1 [1] => 2 [2] => 2.5 [3] => 4 [4] => 7 [5] => 10 )
?>

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

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

<?php
// Определяем массив
$colors = array("Red", "Green", "Blue", "Yellow");

// Сортируем и печатаем массив
rsort($colors);
print_r($colors);

// Выводит: Array ( [0] => Yellow [1] => Red [2] => Green [3] => Blue )
?>

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

<?php
// Определяем массив
$numbers = array(1, 2, 2.5, 4, 7, 10);

// Сортируем и печатаем массив
rsort($numbers);
print_r($numbers);

// Выводит: Array ( [0] => 10 [1] => 7 [2] => 4 [3] => 2.5 [4] => 2 [5] => 1 )
?>

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

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

<?php
// Определяем массив
$age = array("Peter"=>20, "Harry"=>14, "John"=>45, "Clark"=>35);

// Сортируем по значению и печатаем массив
asort($age);
print_r($age);

// Выводит: Array ( [Harry] => 14 [Peter] => 20 [Clark] => 35 [John] => 45 )
?>

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

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

<?php
// Определяем массив
$age = array("Peter"=>20, "Harry"=>14, "John"=>45, "Clark"=>35);

// Сортируем по значению и печатаем массив
arsort($age);
print_r($age);

// Выводит: Array ( [John] => 45 [Clark] => 35 [Peter] => 20 [Harry] => 14 )
?>

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

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

<?php
// Определяем массив
$age = array("Peter"=>20, "Harry"=>14, "John"=>45, "Clark"=>35);

// Сортируем по ключу и печатаем массив
ksort($age);
print_r($age);

// Выводит: Array ( [Clark] => 35 [Harry] => 14 [John] => 45 [Peter] => 20 )
?>

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

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

<?php
// Определяем массив
$age = array("Peter"=>20, "Harry"=>14, "John"=>45, "Clark"=>35);

// Сортируем по ключу и печатаем массив
krsort($age);
print_r($age);

// Выводит: Array ( [Peter] => 20 [John] => 45 [Harry] => 14 [Clark] => 35 )
?>
smsc banner 480x320smsc banner 728x90smsc banner 120x600beget banner 480x320beget banner 728x90beget banner 120x600flexbe banner 480x320flexbe banner 728x90flexbe banner 120x600

Насколько публикация полезна?

Нажмите на звезду, чтобы оценить!

Средняя оценка 5 / 5. Количество оценок: 2

Оценок пока нет. Поставьте оценку первым.

Похожие посты

Руководство по загрузке файлов на сервер в PHP

В этом руководстве мы узнаем, как загружать файлы на удаленный сервер с помощью простой HTML-формы и PHP. Вы можете загружать файлы любого типа, например изображения, видео, ZIP-файлы, документы Microsoft Office, PDF-файлы, а также исполняемые файлы и множество других типов файлов. Шаг 1. Создание HTML-формы для загрузки файла В следующем примере будет создана простая HTML-форма, которую…
Подробнее

Руководство по GET и POST запросам в PHP

Веб-браузер связывается с сервером, как правило, с помощью одного из двух HTTP-методов (протокола передачи гипертекста) — GET и POST. Оба метода передают информацию по-разному и имеют разные преимущества и недостатки, как описано ниже. PHP-метод GET В методе GET данные отправляются в виде параметров URL, которые обычно представляют собой строки пар имени и значения, разделенные амперсандами…
Подробнее

Список сообщений об ошибках в PHP

Обычно, когда движок PHP сталкивается с проблемой, препятствующей правильной работе скрипта, он генерирует сообщение об ошибке. Существует шестнадцать различных уровней ошибок, и каждый уровень представлен целым числом и связанной с ним константой. Вот список уровней ошибок: Название Значение Описание E_ERROR 1 Неустранимая ошибка времени выполнения от которой невозможно избавиться. Выполнение скрипта немедленно прекращается E_WARNING 2…
Подробнее