Четверг, 16.05.2024, 15:22
DigitalBox
Приветствую Вас Гость | RSS
Главная Сортировка массивов Регистрация Вход
Меню сайта

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



Одной из самых замечательных возможностей, предоставляемых языком РНР при работе с массивами, является их сортировка. Исходно интерпретатор РНР размещает значения элементов массива в указанном вами порядке и позволяет соответствующим образом выводить их. Очень часто необходимо изменить порядок следования элементов. Например, нужно отсортировать элементы массива в алфавитном порядке по индексу или по значению.

Язык РНР предоставляет широкие возможности при сортировке массивов. Например, чтобы изменить порядок следования элементов массива с числами в качестве индексов, следует воспользоваться функцией sort():

sort($имя_массива);

Это выражение сортирует элементы массива по значению и присваивает им новые индексы в порядке следования. При этом сначала идут значения, начинающиеся с чисел, потом — с прописных и строчных букв. Например, рассмотрим массив $streets:

$streets[0] = "ул. Вязов";
$streets[1] = "ул. Дубов";
$streets[2] = "7-ая авеню";

Использование выражения sort($streets);

приведет к следующему:

$streets[0] = "7-ая авеню";
$streets[1] = "ул. Вязов";
$streets[2] = "ул. Дубов";

Если же использовать функцию sort() для сортировки массива, индексами которого являются текстовые строки, РНР преобразует их в числа.

Поэтому для таких целей необходимо воспользоваться функцией asort():

asort($capitals);

Это выражение сортирует значения столиц по значению, при этом не изменяя индексы массива. Рассмотрим массив $capitals, созданный в предыдущем разделе:

$capitals['СА'] = "Сакраменто";
$capitals['TX'] = "Остин";
$capitals['OR'] = "Салем";

При использовании выражения asort($capitals);

получим следующее:

$capitals['TX'] = "Остин"
$capitals['СА'] = "Сакраменто"
$capitals['OR'] = "Салем"

Заметим, что порядок следования индексов массива изменяется в соответствии со значениями. Теперь столицы расположены в алфавитном порядке. Если бы в качестве индексов массива использовались числа, то они бы тоже поменяли свой порядок. Например, пусть имеется массив

$capitals[1] = "Сакраменто";
$capitals[2] = "Остин";
$capitals[3] = "Салем";

Результатом выполнения функции asort() будет:

$capitals[2] = "Остин"
$capitals[1] = "Сакраменто"
$capitals[3] = "Салем"

Врядли эта функция будет полезна для массивов с числовыми индексами.

Язык РНР предоставляет также и другие возможности для сортировки массивов различными способами. Ниже в таблице представлены необходимые для этого функции.

Сортировка массивов Описание
 sort($имя_массива)Сортирует значения элементов массива по возрастанию, присваивая им при этом новые числовые индексы
 asort($имя_массива)Сортирует значения элементов массива по возрастанию, не изменяя при этом индексы
 rsort($имя_массива)Сортирует значения элементов массива по убыванию, присваивая при этом новые числовые индексы
 arsort($имя_массива)Сортирует значения элементов массива по убыванию, не изменяя при этом индексы
 ksort($имя_массива)Сортирует индексы элементов массива по возрастанию
 krsort($имя_массива)Сортирует индексы элементов массива по убыванию
 usort($имя_массива, имя_функции)
 Пользовательская сортировка, определяемая функцией имя_функции
 natsort($имя_массива)Сортирует смешанные значения (текстовые и числовые) элементов массива и устанавливает "естественный" порядок. Например, массив со значениями day1, day5, day11, day2 будет отсортирован следующим образом: day1, day2, day5, day11. В то время как результатом выполнения функции sort() будет: day1, day11, day2, day5

Форма входа

Мини-чат

Календарь новостей
«  Май 2024  »
ПнВтСрЧтПтСбВс
  12345
6789101112
13141516171819
20212223242526
2728293031

Поиск

Друзья сайта
Скажи сайту спасибо
ЯндексЯндекс. ДеньгиХочу такую же кнопку



Получить WMR-бонус на свой кошелек!

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Copyright MyCorp © 2024 Бесплатный конструктор сайтов - uCoz