Диапазон использования массивов намного шире. Например, вместо выстраивания одномерных рядов коробков из них можно построить двумерную матрицу, а массивы могут иметь три и более измерения.
Чтобы привести пример двумерного массива, представим, что нужно отслеживать ход игры в крестики-нолики, для чего требуется структура данных, состоящая из девяти клеток, сгруппированных в квадрат 3×3. Чтобы представить это в виде спичечных коробков, вообразите себе девять коробков, склеенных в матрицу, состоящую из трех строк и трех столбцов (см. рис.).
Теперь для каждого хода можно класть в нужные коробки клочки бумаги с крестиком или ноликом. Чтобы сделать это в коде РНР, нужно создать массив, содержащий три других массива, как в примере, в котором массив создается для отображения уже ведущейся игры.
Пример. Определение двумерного массива
<?php
$охо = array(array('х', ' ', 'о'),
array('о', 'о', 'х'),
array('х', 'о', ' ' ));
?>
Мы сделали еще один шаг к усложнению, но смысл его нетрудно понять, если усвоен основной синтаксис массива. Здесь три конструкции array()
вложены во внешнюю по отношению к ним конструкцию array()
.
Для возвращения в дальнейшем третьего элемента во второй строке этого массива можно воспользоваться следующей PHP-командой, которая отобразит символ «х»:
echo $охо[1][2];
Не забывайте о том, что отсчет индексов массива (указателей на элементы внутри массива) начинаются с нуля, а не с единицы, поэтому в предыдущей команде индекс [1] ссылается на второй из трех массивов, а индекс [2] — на третью позицию внутри этого массива. Эта команда вернет содержимое третьего слева и второго сверху коробков.
Как уже упоминалось, поддерживаются даже массивы с большей размерностью, получаемые путем простого создания большего количества вложенных друг в друга массивов. Но в данном курсе массивы с размерностью больше двух рассматриваться не будут.
Не стоит переживать, испытывая трудности с использованием массивов, поскольку эта тема будет подробно рассмотрена в главе «Массивы в РНР».
Массивы | Правила присваивания имен переменным |