Программирование с нуля - это совсем просто! 102) PHP: Массивы
Школа программирования
102) Массивы
Продолжение рубрики по программированию на PHP. Последний выпуск - см. N 98.
Массивы в PHP реализованы очень гибко, во многом благодаря тому, что на серверной стороне PHP-сценарии выполняются интерпретирующей системой. Создание переменной-массива выполняется обычно в операторе присваивания. Для этого используется ключевое слово array.
Например, если мы хотим определить в программе переменную MyArr как массив, ее надо предварительно до использования инициализировать так:
$MyArr = array();
В результате переменная MyArr становится массивом из нуля элементов.
Размеры любого массива в PHP могут меняться динамически. Фактически PHP-массивы представляют собой структуры из пар "ключ - значение", где в качестве ключа может выступать как целое число, так и, например, строка.
То есть можно записать:
$MyArr[1] = 12;
В квадратных скобках записывается ключ (в нашем случае - число 1), которое связывается с значением 12. Вместо численного ключа можно использовать строку:
Исходные пары ключей и значений можно также указывать в момент создания массива, для этого каждая пара разделяется запятыми, а связка ключа и значения выполняется с помощью двух символов "=>" :
$MyArr[ 2 ], а элемент $MyArr[ 1 ]
перестанет существовать. Дело в том, что задаваемые в квадратных скобках значения ключей - это не индексы, не номера элементов, как в Си, а условные ключи, поэтому после удаления элементов изменения значений других ключей не происходит.
Если ключ не указан, то считается, что он равен нулю:
$MyArr = array();
$MyArr[] = 5;
В переменной $MyArr хранится пара значений 0 => 5. При следующем
обращении к $MyArr без ключа
$MyArr[] = 500;
новый ключ, созданный по умолчанию, будет больше максимального
целого ключа на единицу: 1 => 500. Поэтому запись
$MyArr = array( "от дома" , "от сейфа" );
без указания ключей создаст пары 0 => "от дома" , 1 => "от сейфа".
При желании можно задать только один начальный ключ:
$MyArr = array( 1 => "от дома" , "от сейфа" );
тогда пары будут такими:
1 => "от дома" , 2 => "от сейфа"
Многомерные массивы
Структуру данных в виде массива можно в качестве элемента включать в другой массив, формируя таким образом многомерные массивы. Для этого достаточно в соответствующих местах использовать ключевое слово array:
$a2 = array(
array(1,2),
array(3,4)
);
Обращаться к нему можно так:
$a2[0][1] = 0;
Переменная $a2 представляет собой двумерный массив (матрицу) размером 2x2 элемента. PHP-массив не накладывает каких-либо ограничений на размеры по любому измерению, да и понятие многомерного массива в PHP существенно разнится от общепринятого в Си. Благодаря тому, что каждый элемент массива в свою очередь может быть массивом (а может и не быть!), программисту доступны возможности создания сколь угодно причудливых структур данных - стеков, коллекций, словарей, рекурсивных списков и т. д.
Полезные функции обработки массивов
Функция
print_r( переменная-массив )
выводит (формирует html-код) содержимое массива:
print_r( $a2 );
Данная функция применяется для отображения содержимого любых переменных в виде, подготовленном для человеческого восприятия. Для вывода массивов в ней используются теги
<pre>
Чтобы определить, является ли некоторая переменная массивом или скалярным значением, надо воспользоваться функцией is_array(имя-переменной), которая возвращает true, если переменная - массив.
Количество элементов в массиве выявляется функцией count(имя-переменной).
Большое число функций обработки массивов входит в стандартную библиотеку помощи PHP (раздел Array Functions).
Задание.
Создайте треугольный массив размером 10 элементов (двумерный массив, в первой строке которого 1 элемент, во второй - 2, ... , в 10-й - 10 элементов). Заполните его случайными значениями (воспользуйтесь для этого функцией rand(min,max), которая выдает случайное число в диапазоне от min до max).
Выведите содержимое массива на экран (в браузер клиента) в удобном для человека виде, не пользуясь функцией print_r (напишите схожий с ней аналог самостоятельно).