#3. 9 php Сортировка массивов
Primary tabs
В PHP предусмотрены все возможные способы сортировки данных в массивах. Простейшим способом является использование функции sort()
, которая сортирует заданный массив по возрастанию значений его элементов. Ниже приведён пример использования этой функции.
<?php $fruits[0] = "яблоко"; $fruits[1] = "груша"; $fruits[2] = "абрикос"; print_r($fruits); sort($fruits); print_r($fruits); ?>
Ниже приведён результат выполнения этого примера. Массив $fruits
отсортирован, а его элементы перенумерованы.
Array( [0] => "яблоко" [1] => "груша" [2] => "абрикос" ) Array( [0] => "абрикос" [1] => "груша" [2] => "яблоко" )
При помощи функции rsort()
массив можно отсортировать по убыванию значений его элементов.
<?php $fruits[0] = "яблоко"; $fruits[1] = "груша"; $fruits[2] = "абрикос"; print_r($fruits); rsort($fruits); print_r($fruits); ?>
Array( [0] => "яблоко" [1] => "груша" [2] => "абрикос" ) Array( [0] => "яблоко" [1] => "груша" [2] => "абрикос" )
Но что если в массиве используются строковые индексы? При использовании функций sort()
и rsort()
происходит перенумерация элементов массива, и информация о строковых индексах будет потеряна. В этом случае на помощь приходит функция asort()
, пример использования которой приведён ниже:
<?php $fruits['красный'] = "яблоко"; $fruits['зеленый'] = "груша"; $fruits['оранжевый'] = "абрикос"; print_r($fruits); asort($fruits); print_r($fruits); ?>
Результат выполнения выглядит так:
Array( [красный] => "яблоко" [зеленый] => "груша" [оранжевый] => "абрикос" ) Array( [оранжевый] => "абрикос" [зеленый] => "груша" [красный] => "яблоко" )
Функция arsort()
также сохраняет строковые индексы, но сортирует массив по убыванию. Функции ksort()
и krsort()
сортируют массив не по значениям элементов, а по их индексам (в возрастающем и убывающем порядке соответственно). Наконец, если определить собственную функцию сравнения элементов массива, то при помощи функции usort()
можно отсортировать массив по произвольному критерию.
- Log in to post comments
- 190 reads