IPHosting (платный профессиональный хостинг)

Здравствуйте, Гость

Главная страница » Веб-дизайн, создание сайтов » Веб-дизайн » Сортировка Индексированных Массивов

Сортировка Индексированных Массивов

Добавлено: natali2306 | 11.07.2011
Просмотров: 7837
Слов: 1185
Рейтинг: 0.50


Сортировка () и rsort ()

Сортировать () функция сортирует значения в индексированных массивах в порядке возрастания. Это означает, что приходит до Z, и 0 доходит до 9. Заглавные буквы предстают перед строчными буквами, и все письма приходят до номера. Например
$ ТуАггау = Array (1, 2, '', 'B', '', 'B'); рода ($ туАггау); / / выводит "AB AB 1 2" Еогеасп ($ туАггау при $ Val) эхо "$ Вал";

Сортировка ассоциативных массивов: ASORT ()и arsort ()

Сортировать () и rsort () прекрасно подходят для индексированных массивов, где обычно не заботятся о связи между ключами и значениями. Однако они могут вызвать проблемы с ассоциативными массивами. Рассмотрим следующий пример:


$ Фильма = Array ("название" => "Окно во двор", "директор" => "Альфреда Хичкока", "год" => 1954, "минут" => 112); рода ($ фильма); / / выводит " Array ([0] => Альфред Хичкок [1] ​​=> заднего окна [2] => 112 [3] => 1954) "print_r ($ фильма);





Как вы видите ту, своего рода () функция имеет переиндексированный массив с числовыми индексами, уничтожая оригинальный индекс строку "Название", «директор", "год" и "минуты".
Если вы хотите отсортировать значения в ассоциативный массив, сохраняя ключи, использование ASORT () и arsort () вместо. Эти функции сохраняют не только ключи, но и отношения между ключами и их значениями.
Для сортировки значений в порядке возрастания, использование ASORT ():


$ Фильма = Array ("название" => "Окно во двор", "директор" => "Альфреда Хичкока", "год" => 1954, "минут" => 112); ASORT ($ фильма); / / выводит " Array ([директор] => Альфред Хичкок [TITLE] => Rear Window [минут] => 112 [года] => 1954) "print_r ($ фильма);

arsort () сортирует значения в порядке убывания - опять же при сохранении ключей:
$ Фильма = Array ("название" => "Окно во двор", "директор" => "Альфреда Хичкока", "год" => 1954, "минут" => 112); arsort ($ фильма); / / выводит " Array ([года] => 1954 [минут] => 112 [TITLE] => Rear Window [директор] => Альфред Хичкок) "print_r ($ фильма);



Сортировка ассоциативных массивов по ключевым: ksort () и krsort ()

Как и в сортировке ассоциативных массивов по значению, вы можете также сортировать их по ключу. ksort () сортирует элементы в порядке возрастания ключа, а krsort () . Как ASORT () и arsort () , эти функции сохраняют отношения между ключами и значениями.
Вот несколько примеров:


$ Фильма = Array ("название" => "Окно во двор", "директор" => "Альфреда Хичкока", "год" => 1954, "минут" => 112); / / выводит "Array ([директор] = > Альфред Хичкок [минут] => 112 [TITLE] => Rear Window [года] => 1954) "ksort ($ фильма); print_r ($ фильма); / / выводит" Array ([года] => 1954 [название] => Rear Window [минут] => 112 [директор] => Альфред Хичкок) "krsort ($ фильма); print_r ($ фильма);



php.jpg

Сортировка нескольких массивов и многомерные массивы с array_multisort ()
Мощный array_multisort () функция может сортировать связанные массивы на одном дыхании, сохраняя отношения между массивами. Он может также сортировать многомерные массивы, так что это довольно гибкие функции! Давайте посмотрим на сортировку нескольких массивов, а затем мы рассмотрим сортировки многомерных массивов.

Сортировка нескольких массивов

Для сортировки нескольких массивов, используя array_multisort () .
Вот пример:


$ Директоров = Array ("Стэнли Кубрика", "Альфред Хичкок", "Мартина Скорсезе"); $ названия = Array ("Full Metal Jacket", "Окно во двор", "Злые улицы"), $ = массива лет (1987, 1954, 1973); array_multisort ($ директоров, $ названия, $ лет); print_r ($ директоров); Эхо ""; print_r ($ наименований); Эхо ""; print_r ($ лет) ; Эхо "";

Приведенный выше код отображает следующию информацию:
Array ([0] => Альфред Хичкок [1] ​​=> Мартин Скорсезе [2] => Стэнли Кубрик) Array ([0] => заднее стекло [1] => "Злых улиц" [2] => Цельнометаллическая оболочка) Array ([0] => 1954 [1] => 1973 [2] => 1987)



Обратите внимание, как array_multisort () имеет, отсортированы значения в $ директоров в порядке возрастания, а затем сортируются 2 других массива так, что порядок элемента матчей, что из ныне отсортировано $ директоров массива.
Что делать, если вы хотите отсортировать, скажем, название вместо этого? Просто поместите $ названия первым в списке:
array_multisort ($ названия, $ директоров, $ лет);
Сортировка по ... то по ...
Если первый массив содержит некоторые одинаковые значения, то array_multisort () сортирует значения первого массива, то значения во второй массив, и так далее.
Например

:
$ Директоров = Array ("Стэнли Кубрика", "Альфред Хичкок", "Мартина Скорсезе", "Стэнли Кубрика"); $ названия = Array ("Full Metal Jacket", "Окно во двор", "Злые улицы", "Заводной Оранжевый "); $ лет = массив (1987, 1954, 1973, 1971); array_multisort ($ директоров, $ названия, $ лет); print_r ($ директоров); Эхо" "; print_r ($ наименований); Эхо ""; print_r ($ лет); Эхо "";

Выше код выводит следующее - Обратите внимание, что "Заводной апельсин «предстает перед "Full Metal Jacket" :
Array ([0] => Альфред Хичкок [1] ​​=> Мартин Скорсезе [2] => Стэнли Кубрик [3] => Стэнли Кубрик) Array ([0] => заднее стекло [1] => "Злых улиц" [2] => "Заводной апельсин" [3] => Цельнометаллическая оболочка) Array ([0] => 1954 [1] => 1973 [2] => 1971 [3] => 1987)



Изменение порядка сортировки

Вы можете передавать необязательный аргумент флаг после аргумента массива контролировать порядок сортировки для данного массива:
SORT_ASC
Сортировать в порядке возрастания (по умолчанию)
SORT_DESC
Сортировать в порядке убывания
В следующем примере видов $ директоров массива в порядке возрастания, то $ названия массива в порядке убывания:


$ Директоров = Array ("Стэнли Кубрика", "Альфред Хичкок", "Мартина Скорсезе", "Стэнли Кубрика"); $ названия = Array ("Full Metal Jacket", "Окно во двор", "Злые улицы", "Заводной Оранжевый "); $ лет = массив (1987, 1954, 1973, 1971); array_multisort ($ директоров, SORT_ASC, $ названия, SORT_DESC, $ лет); print_r ($ директоров); Эхо" "; print_r ( $ наименований); Эхо ""; print_r ($ лет); Эхо "";

Вот выход - Обратите внимание, что "Full Metal Jacket" Сейчас идет «Заводной апельсин" :




Array ([0] => Альфред Хичкок [1] ​​=> Мартин Скорсезе [2] => Стэнли Кубрик [3] => Стэнли Кубрик) Array ([0] => заднее стекло [1] => "Злых улиц" [2] => Full Metal Jacket [3] => Заводной апельсин) Array ([0] => 1954 [1] => 1973 [2] => 1987 [3] => 1971)



Сортировка многомерных массивов
Если вы передаете многомерный массив на array_multisort () , то он сортирует массив, глядя на первый элемент каждого вложенного массива. Если 2 таких элементов имеют одинаковое значение, то он сортирует по второй элемент, и так далее.
Вот пример, который показывает, как это работает. Он использует array_multisort () для сортировки многомерный массив с директором, то по названию, то по годам:

$ Фильмов = массив (Array ("директор" => "Альфреда Хичкока", "Title" => "Окно во двор", "год" => 1954), массив ("директор" => "Стэнли Кубрика", "Название" => "Full Metal Jacket", "год" => 1987), массив ("директор" => "Мартина Скорсезе", "Title" => "Злые улицы", "год" => 1973), массив ("директор "=>" Стэнли Кубрика "," Title "=>" Заводной апельсин "," год "=> 1971)); array_multisort ($ фильмов); Эхо" "; print_r ($ фильмов); Эхо" < / PRE> ";

Приведенный выше код производит следующие:


Array ([0] => Array ([директор] => Альфред Хичкок [TITLE] => Rear Window [года] => 1954) [1] => Array ([директор] => Мартин Скорсезе [TITLE] => Среднее Улицы [года] => 1973) [2] => Array ([директор] => Стэнли Кубрик [TITLE] => Заводной апельсин [года] => 1971) [3] => Array ([директор] => Стэнли Кубрик [TITLE] => Full Metal Jacket [года] => 1987))



Вы можете видеть, что array_multisort () имеет, отсортировано массива режиссер. Где режиссер же ("Стэнли Кубрика"), он затем сортируются по названию.
Для сортировки массива в порядке убывания вместо этого передать SORT_DESCфлаг в качестве второго аргумента array_multisort () . Легко!

Об авторе

http://www.abrams81.ru/



Условия перепечатки

При репосте статьи "Сортировка Индексированных Массивов", пожалуйста укажите источник - сайт http://www.iphosting.ru/ (Платный профессиональный хостинг) — и информацию об авторе.
Смотрите также

Оригинальный Дизайн И Зачем Он Нужен
Практически все начинающие веб-мастера да и профессиональные дизайнеры пытаются придумать что-то свое, нестандартное в веб-дизайне. Все идут к одной цели - сделать удобный и красивый дизайн, но, к сожалению, получается это очень редко. Стремление придумывать новые, оригинальные вещи, конечно хорошее дело, но нужно ли это?

Ошибки Заказчика В Разработке Сайтов
Заказчик, а не только веб-разработчик сайтов несет ответственность за выполнение работы. Так как разработка сайтов это обоюдный, то есть совместный процесс разработчика и заказчика. И появление на свет сайта — их общее детище. Но, к сожалению не всегда разработка сайта заканчивается успешно, бывают промахи разочарования и т.д. Конечно, немало ошибок делают разработчики, и поэтому принято считать, что плохой сайт это только их вина. На самом деле нужно устранить это заблуждение.