Сортировка массивов в PHP

Сортировка массивов в PHP

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

Функции 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 )

Оставьте первый комментарий

Оставить комментарий

Ваш электронный адрес не будет опубликован.


*