Рассмотрим создание двумерных массивов в PHP. Например, для представления шахматной доски нужен двумерный массив 8x8.

Двумерный массив можно представить в таком виде:

[ ]   [ ]   [ ]   [ ]   ...   [ ] 
[ ] [ ] [ ] [ ] ... [ ]
[ ] [ ] [ ] [ ] ... [ ]
[ ] [ ] [ ] [ ] ... [ ]
.................................
[ ] [ ] [ ] [ ] ... [ ]

Представим, что здесь каждая пара квадратных скобок это один элемент массива.

Приведем пример создания и использования двумерного массива в PHP:

<html>
<body>
<h2>Двумерный массив</h2>
<table>
<?php
for($k=1;$k<=10;$k++)
for ($j=1;$j<=10;$j++)
$multable[$k][$j]=$j*$k;
for ($k=1;$k<=10;$k++) {
print "<tr>";
for ($j=1;$j<=10;$j++)
echo "<td>",$multable[$j][$k],"</td>";
print "</tr>";
}
?>
</table>
</body>
</html>

В этом скрипте, используя теги HTML, выводится заголовок «Двумерный массив» и таблица 10x10. В скрипте использованы две пары циклов for (так называемые вложенные циклы). В первом двойном цикле элементам двумерного массива $multable присваиваются произведения переменных $j и $k.

Во втором двойном цикле на экран выводятся строки таблицы (tr), клетки таблицы (td) и значения элементов массива ($multable[$j][$k]).

Пример:

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>Двумерный массив. Примеры</title>
</head>
<body>
<?php
$n = 6;

echo "\n<table border='1'>";
for($i=0;$i<$n;$i++) {
echo "<tr>";
for($j=0;$j<$n;$j++)
echo "<td>i = $i; j = $j</td>";
echo "</tr>";
}
echo "</table>";

echo "<br>";

echo "\n<table border='1'>";
for($i=0;$i<$n;$i++) {
echo "<tr>";
for($j=0;$j<$n;$j++)
echo "<td>x[i = $i][j = $j]</td>";
echo "</tr>";
}
echo "</table>";

echo "<br>";

echo "\n<table border='1'>";
for($i=0;$i<$n;$i++) {
echo "<tr>";
for($j=0;$j<$n;$j++)
echo "<td>x[$i][$j]</td>";
echo "</tr>";
}
echo "</table>";

echo "<br>";

echo "\n<table border='1'>";
for($i=0;$i<$n;$i++) {
echo "<tr>";
for($j=0;$j<$n;$j++){
$x[$i][$j]= $i*10+$j;
echo "<td>",$x[$i][$j],"</td>";
}
echo "</tr>";
}
echo "</table>";

echo "<br>";

echo "\n<table border='1'>";
for($i=0;$i<$n;$i++) {
echo "<tr>";
for($j=0;$j<$n;$j++){
$x[$i][$j]= rand(1,9);
echo "<td>",$x[$i][$j],"</td>";
}
echo "</tr>";
}
echo "</table>";
?>
</body>
</html>

Контрольные вопросы и задания

  1. В приведенном примере сделайте шрифт клеток первой строки таблицы красного цвета.
  2. В приведенном примере сделайте шрифт клеток первого столбца таблицы зеленого цвета.
  3. В приведенном примере сделайте шрифт клеток главной диагонали таблицы синего цвета.