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

В РНР предусмотрены все возможные способы сортировки данных в масси­вах. Простейшим способом является функция sort, которая сортирует задан­ный массив по возрастанию значений его элементов. Ниже приведен пример ис­пользования этой функции.

code: #php
<?php
$fruits[0] = "яблоко";
$fruits[1] = "груша";
$fruits[2] =  "абрикос";
print_r($fruits);
sort($fruits);
print_r($fruits);
?>

Ниже приведен результат выполнения этого примера. Массив $fruits от­сортирован, а его элементы перенумерованы:

code: #php
Array (
[0] => яблоко
[1] => груша
[2] => абрикос
)
 
Array (
[0] => абрикос
[1] => груша
[2] => яблоко
)       

При помощи функции sort массив можно отсортировать по убыванию зна­чений его элементов:

code: #php
<?php
$fruits[0]   =  "яблоко";
$fruits[1]   =  "груша";
$fruits[2]  =  "абрикос";
print_r($fruits);
rsort($fruits);
print_r($fruits);
?>

В результате будет выведено следующее:

code: #php
Array (
[0] => яблоко
[1] => груша
[2] => абрикос
)
 
Array (
[0] => яблоко
[1] => груша
[2] => абрикос
)

Но что если в массиве используются строковые индексы? При использовании функций sort и rsort происходит перенумерация элементов массива, и инфор­мация о строковых индексах будет потеряна. В этом случае на помощь приходит функция assort, пример использования которой приведен ниже:

code: #php
<?php
$fruits['красный']  = "яблоко";
$fruits['зеленый']  = "груша";
$fruits['оранжевый']  = "абрикос";
print_r($fruits);
asort($fruits);
print_r($fruits);
?>

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

code: #php
Array (
[красный] => яблоко
[зеленый] => груша
[оранжевый] => абрикос
)
 
Array (
[оранжевый] => абрикос
[зеленый] => груша
[красный] => яблоко
)

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

Книга: PHP в примерах. Купить книгу
Автор: Стивен Хольцнер. Переводчик: С. Банников
Поделиться:

Похожие статьи: