Практическое занятие № 18
Тема: Работа с массивами в PHP. Создание и сортировка массивов
Ход работы
Создать форму, вида:

Организовать сортировку массивов в соответствующих полях. При этом перед каждой сортировкой придется формировать массив по полям, поэтому целесообразно формирование массива оформить в виде функции.
Указания: на форму добавьте таблицу, в ячейках которой разместите нужные поля и другие компоненты. Для удобства обработки массивов поля левого столбца будут иметь имя "T" с цифрой (T1, T2, и т.д.). Поля правого столбца будут иметь имя "P" с цифрой (P1, P2, и т.д.)
Кнопка "Сортировать" имеет тип "submit", кнопка "Очистить" имеет тип "button".
В исходном коде страницы над формой введите код, который перепишет содержимое полей в массивы и отсортирует их в зависимости от выбранного переключателя:
После сортировки массивы нужно вывести на форму.
В теге первого поля левого столбца нужно вывести элемент массива и перейти к следующему элементу. Для это добавьте атрибут вида:
value="<? echo $left[$i]; $i++;?>"
Аналогично, в теге первого поля правого столбца нужно вывести элемент массива и перейти к следующему элементу. Для этого добавьте атрибут вида:
value="<? echo $right[$j]; $j++;?>"
Повторите эти команды для остальных полей соответствующих столбцов.
Кнопка "Очистить" должна перезагрузить страницу для возврата в исходное состояние. Так как в PHP нет средств перегрузки страницы, то добавим в тег кнопки атрибут выполнения кода JavaScript:
onclick="location.reload();"
Самостоятельно внесите изменения так, чтобы на странице сохранялось значение выбранного переключателя.
Рассмотренный пример обрабатывает известное количество полей. Поэтому мы можем без цикла выводить элемент массива и через $i++ переходить к следующему элементу.
В некоторых задачах нужно строить какие-то структуры (чаще всего таблицы) циклически, не зная заранее числа строк и столбцов.
Пусть массив формируются только из полей, заполненных числами (то есть заранее размер массива не известен). Отсортированный массив выводится в виде таблицы ниже от формы. При этом вывод таблицы оформим в виде функции.
Указания: так как отсортированный массив будет отображаться не в полях, удалите из тегов полей атрибут value.
Все функции опишем вначале страницы. После тега body введите теги <? . . . ?>, в которых будут находиться наши функции.
Вначале изменим функцию формирования массива так, чтобы в массив попадали только числовые значения полей.
Ниже добавим функцию, которая выводит массив как таблицу. Имя массива передается в качестве параметра.
Вывод таблицы будет происходить под формой. Для этого после формы добавьте теги <? . . . ?>. Внутри этих тегов напишите код:

Самостоятельно внесите изменения так, чтобы на форме сохранялись значения полей.