Язык программирования PHP



           

Функции asort, rsort, arsort


Если требуется сохранять индексы элементов массива после сортировки, то нужно использовать функцию asort (массив [, флаги]). Если необходимо отсортировать массив в обратном порядке, т.е. от наибольшего значения к наименьшему, то можно задействовать функцию rsort (массив [, флаги]). А если при этом нужно еще и сохранить значения ключей, то следует использовать функцию arsort(массив [, флаги]). Как вы, наверное, заметили синтаксис у этих функций абсолютно такой же, как у функции sort. Соответственно и значения флагов могут быть такими же, как у sort: SORT_REGULAR, SORT_NUMERIC, SORT_STRING. Кстати говоря, флаг SORT_NUMERIC появился только в PHP4.

<?php $books = array("Пушкин"=>"Руслан и Людмила", "Толстой"=>"Война и мир", "Лермонтов"=>"Герой нашего времени"); asort($books); // сортируем массив, // сохраняя значения ключей print_r($books); echo "<br>"; rsort($books); // сортируем массив в обратном порядке, // ключи будут заменены print_r($books); ?>

Пример 7.7. Применение функций asort, rsort, arsort (html, txt)

В результате работы этого скрипта получим:

Array ( [Толстой] => Война и мир [Лермонтов] => Герой нашего времени [Пушкин] => Руслан и Людмила ) Array ( [0] => Руслан и Людмила [1] => Герой нашего времени [2] => Война и мир )

Пример 7.8. Допустим, мы создаем каталог описаний документов. У каждого документа есть автор, название, дата публикации и краткое содержание. Мы уже не раз отображали описания, составленные из этих характеристик. Каждый раз порядок отображения этих элементов зависел от созданной нами программы. Теперь же мы хотим иметь возможность изменять порядок отображения элементов по желанию пользователя. Составим для этого следующую форму:

<form action=task.php> <table border=1> <tr><td>Название </td><td><input type=text name=title size=5> </td></tr> <tr><td>Краткое содержание </td><td><input type=text name=description size=5> </td></tr> <tr><td>Автор </td><td><input type=text name=author size=5> </td></tr> <tr><td>Дата публикации </td><td><input type=text name=published size=5></td></tr> </table> <input type=submit value="Отправить"> </form>




Содержание  Назад  Вперед