PHP 繰り返し処理(ループ処理)while、for、foreach 〜未経験の為のPHPプログラミング講座〜

前回の条件分岐と並んでPHPプログラミングでよく利用されるのが繰り返し処理(ループ処理)です。
繰り返し処理(ループ処理)の種類は主にwhile、for、foreachの3種類あります。
それぞれ個別に解説していきます。
繰り返し処理(ループ処理)-while
whileは与えられた条件式が真(true)の間、ループを繰り返し実行します。
while( 条件 ){ 与えられた条件がtrueの場合処理 }
1 2 3 4 5 6 7 8 9 10 11 12 | <?php $i = 1; // $i が 6未満の間は繰り返し実行されます。 while ($i < 6) { echo $i.'回目の実行です。<br>'; $i++; } ?> |
1 2 3 4 5 | 1回目の実行です。 2回目の実行です。 3回目の実行です。 4回目の実行です。 5回目の実行です。 |
ここで注意したい点は[ $i++ ]を記述しない場合 $i が永遠に6未満なので「無限ループ」となります。
「無限ループ」になると、永遠にループを繰り返すため、サーバーや開発環境のPCに高負荷をかけてしまいます。繰り返し処理(ループ処理)を行う場合は、この無限ループに気を付ける必要があります。
繰り返し処理(ループ処理)-for
whileとは別にforを利用してループ処理を行うこともできます。
記述方法は、whileよりも複雑になり、下記のように記述します。
for ( 初期化式; ループ継続条件式; 増減式 ) { 処理 }
ではwhileで実行した内容をforで記述してみます。
1 2 3 4 5 6 7 8 | <?php for( $i = 1; $i < 6; $i++){ echo $i.'回目の実行です<br>'; } ?> |
1 2 3 4 5 | 1回目の実行です。 2回目の実行です。 3回目の実行です。 4回目の実行です。 5回目の実行です。 |
forの場合も「無限ループ」に気を付けてください。
例えば[ $i++ ]の部分を[ $i– ]と記述すると永遠に$iは6未満の状態となる為、無限ループとなってしまいます。
繰り返し処理(ループ処理)-foreach
whileとforはよく似たループ処理でしたが、foreachはwhileやforとはちょっと違った感じとなります。
foreachの記述方法は下記の2種あり、配列をもとにループ処理を行います。
配列については「PHP 配列-連想配列」を参照してください。
配列のforeach
foreach ( 配列 AS 値変数 ) { 処理 }
1 2 3 4 5 6 7 8 9 | <?php $data = array('山田', '佐藤', '鈴木'); foreach ($data AS $value) { echo '名前は'.$value.'です。<br>'; } ?> |
1 2 3 | 名前は山田です。 名前は佐藤です。 名前は鈴木です。 |
連想配列のforeach
foreach ( 連想配列 AS キー変数 => 値変数 ) { 処理 }
1 2 3 4 5 6 7 8 | <?php $data = array('山田' => '20歳', '佐藤' => '30歳', '鈴木' => '40歳'); foreach ($data AS $key => $value) { echo $key.'は'.$value.'です。<br />'; } ?> |
1 2 3 | 山田は20歳です。 佐藤は30歳です。 鈴木は40歳です。 |
配列や連想配列から簡単に添え字や値を取得できるforeachはよく使うので覚えておきたいループ処理です。
配列のforeachをforで書くと次のようになります。
1 2 3 4 5 6 7 8 9 10 11 12 | <?php $data = array('山田', '佐藤', '鈴木'); // $dataに何個の値が入っているかをcount()関数で計算 $num = count( $data ); for( $i = 0; $i < $num; $i++ ){ echo '名前は'.$data[$i].'です。<br>' } ?> |
forで書くよりforeachで書く方が簡素に書くことができます。
まとめ
プログラミングでは避けては通れない繰り返し処理(ループ処理)ですが、頻繁に利用するので覚えるのも早いと思います。
S.E->お勧め記事;
- Shopify APIを利用して在庫管理を行う
- PHPフレームワーク「Laravel」ディレクティブ-繰り返し処理(ループ処理)-
- macOS Monterey にアップデート後、composerやhomebrewでenv: php: No such file or directoryが出る
- XSERVERにSSHを利用してLaravel環境を構築する
- Panic Nova 購入から1年が過ぎライセンスの更新時期の注意点
- CrowdWorks いつの間にか「プロクラウドワーカー」になっていた
- PHP フレームワーク Laravel ディレクティブ – ループ変数 $loop –
- プログラマー になる為に必要な プログラミング以外 の知識・スキル
- CrowdWorks 提案後、受注に繋がりました。提案〜契約までの流れを解説
S.E->PR;
チームのタスク管理ツール【backlog】
FREENANCE(フリーナンス)
S.E->Weekly Ranking;
S.E->プロフィール;

