【PHP】これだけ覚えれば大丈夫!構文5 – ループ –

PHP

更新履歴

更新日更新者更新内容
2021/8/15JJI・”はじめに”の段落を追加
・サンプルプログラムの実行結果に画面の画像を追加

はじめに

この記事では、PHPで繰り返し処理として使用できるループ文について説明します。
ループ文にはいくつかの種類がありますが、プログラムでよく使用するため、この記事を参考に覚えるようにしましょう。

for

for文はループ処理の構文で次のように使用します。
よく使用する構文のため、必ず覚えるようにしてください。

for(初期値; 終了条件; 増分) {
    処理
}

項目説明
初期値for文を開始する値、$i = 1のように書く
書かなくてもよい
終了条件for文の終了条件、$i < 5のように書く
書かなくてもよいが、後述のbreak文でループを抜けるように書かないと無限ループとなり、処理が終了しないので注意が必要。
増加値初期値で指定した変数の増分、$i++のように書く
増加値は$i–のように負の増加分でもよい
書かなくてもよい

for文を使用したサンプルプログラム・実行結果は次の通りです。

<?php
    echo "PHPの構文5<br>\n";
    echo "ループ<br>\n";

    $vagi1 = ["じゃがいも", "トマト", "きゅうり", "ナス", "にんじん", "ほうれん草"] ;

    echo "for文1<br>\n";
    for($i = 0; $i < 3; $i++){
        echo "${i}:" . $vagi1[$i] . "<br>\n";
    }
    echo "<br>\n";

    echo "for文2<br>\n";
    for($i = 0; $i < 5; $i += 2){
        echo "${i}:" . $vagi1[$i] . "<br>\n";
    }
?>

実行結果は次の通りです。

・画面

・HTML

PHPの構文5<br>
ループ<br>
for文1<br>
0:じゃがいも<br>
1:トマト<br>
2:きゅうり<br>
<br>
for文2<br>
0:じゃがいも<br>
2:きゅうり<br>
4:にんじん<br>

while

while文はループ処理の構文で次のように使用します。
for文と同様によく使用する構文のため、必ず覚えるようにしてください。

while(終了条件) {
    処理
}

項目説明
終了条件while文の終了条件、$i < 5のように書く
書かなくてもよいが、後述のbreak文でループを抜けるように書かないと無限ループとなり、処理が終了しないので注意が必要。

for文で書いたコードはwhile文に置き換えることができます。
for文とwhile文のどちらを使用するのか好みによりますが、どちらもよく使用します。

while文を使用したサンプルプログラム・実行結果は次の通りです。

<?php
    $vagi1 = ["じゃがいも", "トマト", "きゅうり", "ナス", "にんじん", "ほうれん草"] ;

    echo "while文<br>\n";
    $i = 0;

    while($i < 3) {
        echo "${i}:" . $vagi1[$i] . "<br>\n";
        $i++;
    }
    echo "<br>\n";
?>

実行結果は次の通りです。

・画面

・HTML

while文<br>
0:じゃがいも<br>
1:トマト<br>
2:きゅうり<br>
<br>

foreach

foreach文は配列、連想配列の要素をひとつずつ取り出し、配列がすべてなくなるまで処理を繰り返すことができる構文です。
よく使用する構文のため、覚えるようにしてください。

構文は次の通りです。

foreach(配列 as 変数) {
    処理
}

項目説明
配列配列を指定する
配列でなくてもコレクションの型であれば指定可能
変数配列から取り出した要素を指定する

foreach(連想配列 as キー => 値) {
    処理
}

項目説明
連想配列連想配列を指定する
キー連想配列から取り出した配列のキーを指定する
連想配列から取り出した配列の値を指定する

foreeach文を使用したサンプルプログラム・実行結果は次の通りです。

<?php
    $vagi1 = ["じゃがいも", "トマト", "きゅうり", "ナス", "にんじん", "ほうれん草"];
    $vagi2 = [
        "potato" => "じゃがいも", 
        "tomato" => "トマト", 
        "cucumber" => "きゅうり",
        "eggplant" => "ナス", 
        "carrot" => "にんじん", 
        "spinach" => "ほうれん草"];

    echo "foreach文1<br>\n";
    $i = 0;

    foreach($vagi1 as $var) {
        echo "${i}:" . $var . " ";
        $i++;
    }
    echo "<br>\n<br>\n";

    echo "foreach文2<br>\n";
    $i = 0;

    foreach($vagi2 as $key => $val) {
        echo "${i}: key:" . $key . ": value:" . $val . ":<br>\n";
        $i++;
    }
    echo "<br>\n";
?>

実行結果は次の通りです。

・画面

・HTML

foreach文1<br>
0:じゃがいも 1:トマト 2:きゅうり 3:ナス 4:にんじん 5:ほうれん草 <br>
<br>
foreach文2<br>
0: key:potato: value:じゃがいも:<br>
1: key:tomato: value:トマト:<br>
2: key:cucumber: value:きゅうり:<br>
3: key:eggplant: value:ナス:<br>
4: key:carrot: value:にんじん:<br>
5: key:spinach: value:ほうれん草:<br>
<br>

do-while

do-while文はループ処理の構文で、while文はループの開始時に終了条件を判定するのに対し、do-while文はループ内の処理後にループの終了条件を判定します。

do-while文はwhile文で全て置き換えることができるため、while文と比較し、do-while文はあまり使用することは多くありません。
そのため、覚えておかなくても大丈夫です。

do-while文は次のように使用します。

do {
    処理
} while(終了条件);

項目説明
終了条件do-while文の終了条件、$i < 5のように書く
書かなくてもよいが、後述のbreak文でループを抜けるように書かないと無限ループとなり、処理が終了しないので注意が必要。

do-while文を使用したサンプルプログラム・実行結果は次の通りです。

<?php
    $vagi1 = ["じゃがいも", "トマト", "きゅうり", "ナス", "にんじん", "ほうれん草"] ;

    echo "do-while文<br>\n";
    $i = 0;

    do {
        echo "${i}:" . $vagi1[$i] . "<br>\n";
        $i++;
    } while($i < 3);

    echo "<br>\n";
?>

実行結果は次の通りです。

・画面

・HTML

do-while文<br>
0:じゃがいも<br>
1:トマト<br>
2:きゅうり<br>
<br>

break

break文はfor、whileなどのループ処理を途中で終了した場合に使用します。

break文を使用したサンプルプログラム・実行結果は次の通りです。

<?php
    echo "PHPの構文5<br>\n";
    echo "break文<br>\n";

    $vagi1 = ["じゃがいも", "トマト", "きゅうり", "ナス", "にんじん", "ほうれん草"] ;

    $ary_num = count($vagi1);

    for($i = 0; $i < $ary_num; $i++){
        if($i == 3) {
            break;
        }
        echo "${i}:" . $vagi1[$i] . "<br>\n";
    }
?>

実行結果は次の通りです。

・画面

・HTML

PHPの構文5<br>
break文<br>
0:じゃがいも<br>
1:トマト<br>
2:きゅうり<br>

continue

continue文はfor、whileなどのループ中にある処理をスキップしたい場合に使用します。

continue文を使用したサンプルプログラム・実行結果は次の通りです。

<?php
    echo "PHPの構文5<br>\n";
    echo "continue文<br>\n";

    $vagi1 = ["じゃがいも", "トマト", "きゅうり", "ナス", "にんじん", "ほうれん草"] ;

    $ary_num = count($vagi1);

    for($i = 0; $i < $ary_num; $i++){
        if($i == 2 || $i == 4) {
            continue;
        }
        echo "${i}:" . $vagi1[$i] . "<br>\n";
    }
?>

実行結果は次の通りです。

・画面

・HTML

PHPの構文5<br>
continue文<br>
0:じゃがいも<br>
1:トマト<br>
3:ナス<br>
5:ほうれん草<br>

最後に

この記事ではfor、whileなどのループ処理について説明しました。

ループはプログラミングの基本であり、よく使用するため、サンプルプログラムを参考に実際に書いて覚えるようにしましょう。

コメント