Материал предоставлен https://it.rfei.ru

Двумерные массивы

Диапазон использования массивов намного шире. Например, вместо выстраивания одномерных рядов коробков из них можно построить двумерную матрицу, а массивы могут иметь три и более измерения.

Чтобы привести пример двумерного массива, представим, что нужно отслеживать ход игры в крестики-нолики, для чего требуется структура данных, состоящая из девяти клеток, сгруппированных в квадрат 3×3. Чтобы представить это в виде спичечных коробков, вообразите себе девять коробков, склеенных в матрицу, состоящую из трех строк и трех столбцов (см. рис.).

Многомерный массив, смоделированный с помощью коробков

Теперь для каждого хода можно класть в нужные коробки клочки бумаги с крестиком или ноликом. Чтобы сделать это в коде РНР, нужно создать массив, содержащий три других массива, как в примере, в котором массив создается для отображения уже ведущейся игры.

Пример. Определение двумерного массива

<?php
$охо = array(array('х', ' ', 'о'),
             array('о', 'о', 'х'),
             array('х', 'о', ' ' ));
?>

Мы сделали еще один шаг к усложнению, но смысл его нетрудно понять, если усвоен основной синтаксис массива. Здесь три конструкции array() вложены во внешнюю по отношению к ним конструкцию array().

Для возвращения в дальнейшем третьего элемента во второй строке этого массива можно воспользоваться следующей PHP-командой, которая отобразит символ «х»:

echo $охо[1][2];

Не забывайте о том, что отсчет индексов массива (указателей на элементы внутри массива) начинаются с нуля, а не с единицы, поэтому в предыдущей команде индекс [1] ссылается на второй из трех массивов, а индекс [2] — на третью позицию внутри этого массива. Эта команда вернет содержимое третьего слева и второго сверху коробков.

Как уже упоминалось, поддерживаются даже массивы с большей размерностью, получаемые путем простого создания большего количества вложенных друг в друга массивов. Но в данном курсе массивы с размерностью больше двух рассматриваться не будут.

Не стоит переживать, испытывая трудности с использованием массивов, поскольку эта тема будет подробно рассмотрена в главе «Массивы в РНР».

МассивыПравила присваивания имен переменным