【初心者向け PHP 入門】ループ処理の書き方、使い方 【for, foreach, while】
投稿日:

プログラムの実行を繰り返し行うための重要な概念である「ループ処理」について解説します。
ループ処理は、同じ処理を何度も実行する際に欠かせません。
今回は、PHPでよく使う3種類のループ(for、foreach、while)について、それぞれの書き方と使い方を初心者向けに分かりやすく解説します。
もくじ
ループ処理とは
ループ処理とは、特定の条件や指定した回数になるまでプログラムを繰り返し実行することです。
例えば、「1から100までの数字をすべて表示したい」という場合、ループ処理を使うことで簡潔に処理を書くことができます。
 
                            ルナリス
処理を繰り返したいときはループよ
ループの種類
| forループ | 繰り返し回数が事前に分かっている場合に使う | 
|---|---|
| foreachループ | 配列や連想配列の要素を順番に処理する場合に使う | 
| whileループ | 繰り返し条件が明確で、繰り返し回数が事前に分からない場合に使う 無限ループでもよく使用 | 
それぞれのループ処理について、詳しく見ていきましょう。
for文
指定した回数ループを実行する文となります。
書き方
for (初期化; 条件; 更新) {
  // 実行する処理
}
| 初期化 | ループの開始時に実行される処理。通常、カウンタ変数を初期化します。 | 
|---|---|
| 条件 | ループの実行を続けるかどうかを判定する条件。条件が 「true(正しい)」間、ループが繰り返されます。 | 
| 更新 | ループの各繰り返し後に実行される処理。通常、カウンタ変数を更新します。 | 
 
                            ソルト
何言ってるの…?
超簡単に言うと、指定した数だけループするわ
 
                            ルナリス
・例)1から5までの数字を表示する
for ($i = 1; $i <= 5; $i++) {
	// 1から5までの数字を順番に表示
	echo $i . "\n";
}
左から、1から5まで1ずつ増えてループすると読みます。
 
                            ルナリス
カウンタ変数である「i」はループごとに1増えるわ
 
                            ルナリス
これによって、計算や配列のアクセスに変数iを使用できるわ
カウンタ変数
for ($i = 1; $i <= 5; $i++) {
	echo $i . "\n";
}
ループで数を数える変数を「カウンタ変数」と言います。
「$i」を使うことが多いですが、好きな変数を宣言しても良いです。
 
「$i」、「$j」、「$k」と「i」から順番にカウンタ変数を使うことが多いです。
・任意の名前のカウンタ変数の例
for ($count = 1; $count <= 5; $count++) {
	echo $count . "\n";
}
・実行結果
1 2 3 4 5
カウンタ変数の初期化
カウンタ変数の初期値は自由に決めて良いです。
 
 
基本的には0か1でループを始めることが多いため、そのように覚えると良いでしょう。
0から始めると配列にアクセスしやすく、1から始めると連番を記述しやすくなります。
/*
* for文の「$i = 0;」部分が初期化に当たります。
*/
//初期値0
for ($i = 0; $i <= 5; $i++) {
}
//初期値1
for ($i = 1; $i <= 5; $i++) {
}
                                     
                            ルナリス
基本的には0か1を宣言するわ
条件の書き方
カウンタ変数が指定した条件のときループが続きます。
/*
* for文の「$i <= 5;」部分がループの条件に当たります。
*/
for ($i = 0; $i <= 5; $i++) {
}
 
以下は主な条件の書き方の例です。
| 記号 | 意味 | 記述例 | 例の意味 | 
|---|---|---|---|
| <= | 以下のとき | $i <= 5 | 5以下のときループ | 
| < | 未満のとき、小さいとき | $i < 6 | 6より小さいときループ | 
| >= | 以上のとき | $i >= 5 | 5以上のときループ | 
| > | 大きいとき | $i > 4 | 4より大きいときループ | 
| == | 等しいとき | $i == 5 | iが5のときループ | 
| != | 等しくないとき | $i != 4 | iが4以外のときループ | 
 
「$i <= 5」は5以下のときループしますが、「$i < 6」も6より小さいときループするので同じ意味といえます。
どちらを使うかは好みによりますので、覚えやすい方、好きな方を使用しましょう。
 
 
「==」の等しいときはforループではあまり使いません。
カウンタ変数の更新
カウンタ変数を更新することでループの終了を目指します。
                                    
 
                            ソルト
また何言ってるの???
カウンタ変数を増やさないと無限ループします
 
                            ルナリス
 
                            ソルト
なんと…!
//$i++でループごとにiが1ずつ増え、5回ループします。
for ($i = 1; $i <= 5; $i++) {
}
・カウンタ変数の更新の例
| $i++ | $iが1ずつ増える | 
|---|---|
| $i-- | $iが1ずつ減る | 
| $i = $i + 2 | $iが2ずつ増える | 
| $i = $i – 3 | $iが3ずつ減る | 
ポイント
- $i++で1ずつ増えるループ、$i--で1ずつ減るループが実装できる
- 「$i = $i + 2」のように、任意の式を書くことで、ステップ数を操作できます。
 
                            ルナリス
カウンタの更新を式にすることで任意のステップ数で更新可能よ
foreach文
foreach ループは、配列や連想配列の要素を順番に処理するために使用します。
書き方
foreach ($配列 as $要素) {
  // 実行する処理
}
- $配列: 処理したい配列の名前
- $要素: 配列の各要素を格納する変数
 
                            ルナリス
簡単に言うと配列分ループして、その中身が毎回「$要素」に代入されるわ
・例)配列の中身を表示する
$fruits = array("apple", "banana", "orange");
foreach ($fruits as $fruit) {
  echo $fruit . "\n"; // 配列の各要素を順番に表示
}
・実行結果
apple banana orange
 
                            ルナリス
配列を順番に処理したいときは「foreach」
while文
whileループは条件が「true(正しい)」間、ループを繰り返します。
例)5回繰り返す
$count = 0;
while ($count < 5) {
  echo $count . "\n"; // カウンタの値を表示
  $count++;
}
for文とは違い、自分でカウンタ変数を用意することで、ループ数のカウントを行えます。
 
                            ルナリス
このような簡単な繰り返しはfor文で書く方が多いわ
じゃあいつwhile文使うの?
 
                            ソルト
 
                            ルナリス
無限ループよ!!
・無限ループの例
while (1) {
	//続けたい処理
}
「while (1)」や「while (true)」を宣言することで常にループ条件が正しいことになり、無限ループを実現できます。
break文
ループを途中で抜けたい場合、「break」を使用します。
ループの途中であっても「break」が読み込まれると、ループは終了します。
$count = 0;
//無限ループを、$countが6になったとき抜ける
while (1) {
  echo $count . "\n";
  $count++;
  if( $count == 6 ){
	break;
  }
}
上記のコードのように、ループを抜けたい条件を「if文」で記述して「break」することが一般的です。
 
                            ソルト
破壊だbreak!
まとめ
ループの種類
| for | 回数を指定してループ | 
|---|---|
| foreach | 配列や連想配列の分だけループ | 
| while | 指定した条件の間ループ | 
 
                            ルナリス
目的に合わせてループの文を使い分けるといいわ
 
    
コメント一覧