Оглавление

Сортировка

Для сортировки значений в массиве используется функция sort или одна из ее производных, как в примере ниже:

sort($temps);

 

Функции сортировки
Функции sort передается массив, который она сортирует. Готовый массив не возвращается, а возвращаемое значение свидетельствует об удачном или неудачном выполнении операции.

 

Сортировка массива $temps с помощью функции sort расставит все значения в порядке возрастания. Так, нулевому элементу будет соответствовать наименьшее значение. Поэтому невозможно узнать, какое значение соответствует этому месяцу.

 

Для того чтобы сберечь ключевые значения, используется функция asort. Она меняет порядок при прохождении по массиву, но индексы останутся теми же. После сортировки $temps индекс 0 содержит среднюю температуру января, но при прохождении по массиву элементы извлекаются в порядке сортировки.

 

Выведем с помощью ассоциативного массива $temps название месяца и соответствующую среднюю температуру — от самой холодной до самой теплой:

$temps = array("jan" => 38, "feb" => 40, "mar" => 49,
               "apr" => 60, "may" => 70, "jun" => 79,
               "jul" => 84, "aug" => 83, "sep" => 76,
               "oct" => 65, "nov" => 54, "dec" => 42);
asort($temps);
foreach($temps as $month => $temp) { 
	print "$month: $temp <br>\n";
}

 

 Массивы сортируются не только по значениям, но и по ключам. Для этого используется функция ksort. Для ассоциативного массива функция ksort выстроит все элементы в алфавитном порядке по названиям месяца в ключах. Таким образом, после прохождения по отсортированному массиву первым получим элемент $temps [ "apr" ], дальше — $temps [ "aug" ] и так далее.

 

Чтобы изменить порядок сортировки этих функций, вместо sort используется функция гsort. Функция asort заменяется на arsort, a ksort — на krsort. Чтобы изменить порядок элементов в массиве без сортировки, используется array_reverse.

Комментарии принадлежат их авторам. Мы не несем ответственности за их содержание.
Отправитель Нити