
【6日でできるPHP入門】for文の2重ループ
プログラミングの学習が進むと「繰り返し処理(ループ)」は避けて通れません。
その中でも「for文の2重ループ(ネストされたfor文)」は、二次元的なデータ処理や表の作成、組み合わせの列挙など、幅広い場面で活用されます。
この記事では、for文の2重ループについて、表やサンプルを交えて具体的に解説します。

1.for文の2重ループとは
1.1. 2重ループの基本構造
2重ループ(ネストされたfor文)とは、for文の中にさらにfor文を記述し、外側のループごとに内側のループがすべて繰り返される構造です。
外側のループ ($i) | 内側のループ ($j) | 合計繰り返し回数 |
---|---|---|
3回 | 2回 | 3 × 2 = 6回 |
5回 | 5回 | 5 × 5 = 25回 |
基本の書き方
for ($i = 1; $i <= 3; $i++) {
for ($j = 1; $j <= 2; $j++) {
// ここに繰り返し処理を書く
}
}
1.2. 2重ループの利用シーン
2重ループは次のような場面でよく使われます。
シーン例 | 説明 |
---|---|
表・マトリックス | 二次元配列や九九表などの作成に使われる。 |
組み合わせの列挙 | すべてのパターンを出力したいとき |
ゲーム・シミュレーション | グリッド上の移動や判定処理 |
2.具体的なPHPサンプル
2.1. 九九表の作成サンプル
九九のような掛け算表を作ることで、2重ループの働きを理解できます。
ファイル名: lesson34_1.php
<?php
for ($dan = 1; $dan <= 9; $dan++) {
for ($ku = 1; $ku <= 9; $ku++) {
$result = $dan * $ku;
echo "{$dan}×{$ku}={$result} ";
}
echo "<br>";
}
?>
実行結果

2.2. 行と列を表にするサンプル
次は行番号と列番号を組み合わせて、テーブル(表)を作る例です。
ファイル名: lesson34_2.php
<?php
echo "<table border='1'>";
for ($row = 1; $row <= 3; $row++) {
echo "<tr>";
for ($col = 1; $col <= 4; $col++) {
echo "<td>{$row}行{$col}列</td>";
}
echo "</tr>";
}
echo "</table>";
?>
実行結果

3.2重ループとHTML特殊文字
PHPでHTMLを出力する際、特殊文字を使う場面があります。
表示される文字 | HTML特殊文字 |
---|---|
半角スペース | |
< | < |
> | > |
& | & |
" | " |
4.for文の2重ループのポイント
- 外側ループが1回まわるごとに、内側ループが全回数まわる。
- 2重にすることで、行・列など2軸のデータを自然に扱える。
- PHPのループ処理の基本をしっかり理解しておくと応用がきく。
まとめ
for文の2重ループは、二次元的な繰り返し処理や表の作成などで非常に役立つテクニックです。サンプルプログラムを色々と試し、値や条件を変えて挙動を観察することで、実践力を身につけましょう。