1. PHP

【PHP】ループ処理を理解しよう!for、while、foreachの使い方を解説

2025.07.01

Share

同じ処理を繰り返し実行する「ループ」はプログラミングの基本です。

PHPには代表的なループとして forwhileforeach の3種類があります。

当記事では、それぞれの特徴と使い方をわかりやすく解説します。

for文の使い方

最も基本的なループ構文で、カウンタ変数を使った繰り返し処理に適しています。

for ($i = 1; $i <= 5; $i++) {
    echo $i . '回目の処理<br>';
}

上記の例では1〜5まで5回処理を繰り返し、「1回目の処理〜5回目の処理」と出力されます。

  • 初期化式:$i = 1
  • 条件式:$i <= 5(条件がtrueの間ループ)
  • 更新式:$i++(ループごとにカウンタを1増加)

for文は繰り返し回数が決まっている場合に便利です。

while文の使い方

条件がtrueの間、無限にループできる構文で、繰り返し回数が決まっていない場合に使います。

$count = 1;
while ($count <= 5) {
    echo $count . '回目の処理<br>';
    $count++;
}

条件が最初からfalseだと1回も処理されない点に注意しましょう。

do-while文

while文と似ていますが、条件の判定が後なので必ず1回は処理が実行されるのが特徴です。

$count = 6;
do {
    echo $count . '回目の処理<br>';
    $count++;
} while ($count <= 5);

この例では最初から条件はfalseですが、1回だけ「6回目の処理」と出力されます。

foreach文の使い方

配列や連想配列を扱うときに便利な構文で、配列の要素を順に取り出して処理できます。

$fruits = ['Apple', 'Banana', 'Orange'];

foreach ($fruits as $fruit) {
    echo $fruit . '<br>';
}

連想配列の場合

キーと値を両方取得できます。

$person = [
    'name' => 'John',
    'age' => 30,
    'country' => 'USA'
];

foreach ($person as $key => $value) {
    echo $key . ': ' . $value . '<br>';
}

breakとcontinue

ループの制御に役立つ構文も覚えましょう。

  • break:ループを強制終了する
  • continue:ループをスキップして次のループへ進む
for ($i = 1; $i <= 10; $i++) {
    if ($i === 5) {
        break; // 5でループを終了
    }
    echo $i . '<br>';
}
for ($i = 1; $i <= 5; $i++) {
    if ($i === 3) {
        continue; // 3はスキップ
    }
    echo $i . '<br>';
}

無限ループに注意しよう

ループ処理で気をつけたいのは無限ループを作らないことです。

終了条件を間違えると処理が永遠に続き、サーバーやPCに大きな負荷をかけてしまいます。

例えば以下のコードは、条件が常にtrueのため無限ループになります。

$i = 1;
while ($i <= 5) {
    echo $i . '<br>';
    // $iをインクリメントしていないため、条件が変わらずループが終わらない
}

この例では $i++ を書き忘れたことで、$iの値が1のまま変わらず、条件 $i <= 5 がずっとtrueとなり無限ループしてしまいます。

ループを書く際は以下を徹底しましょう。

  • 必ず終了条件を見直す
  • カウンタ変数の更新を忘れない
  • while(true) のような無限ループを使う場合は、breakで終了条件を明示する
$i = 1;
while (true) {
    echo $i . '<br>';
    if ($i >= 5) {
        break; // 必ず終了する条件を作る
    }
    $i++;
}

「ループはいつ終了するか?」を意識して書く習慣を身につけましょう。

まとめ

  • for:回数が決まっているループ向き
  • while:条件を満たす限り繰り返す
  • do-while:最低1回実行してから条件を判定
  • foreach:配列や連想配列に最適

ループを自在に使えるようになると、処理の効率が大幅に上がります。

繰り返し練習して習得しましょう!

参考リンク