読者です 読者をやめる 読者になる 読者になる

PHP foreach文(繰り返し)について…(P6)

今日はforeach文についてです。

foreach文は配列を要素分ループします。

配列の中身を全部使い切るループを行うときは便利です。

実際にコードを書きます。下記をtestForeach.phpで保存して、

実行しましょう!!(コマンド:php testForeach.php)

<?php
    // ゲームタイトル配列をforeachでループする
    $gameTitles = array("スーパードンキーコング", "マリオブラザーズ", "MOTHER2");

    foreach($gameTitles as $value){
        echo $value."は面白い!!"."\n";                                                                   
    }   

    // スマホ配列をforeachでループする
    $smartPhons = array("apple" => "iPhone", "samsung" => "galaxy s", "huawei" => "ascend mate 7");

    foreach($smartPhons as $key => $value){
        echo $key."は".$value."を発売!"."\n";
    }   

実行結果:

スーパードンキーコングは面白い!!
マリオブラザーズは面白い!!
MOTHER2は面白い!!
appleはiPhoneを発売!
samsungはgalaxy sを発売!
huaweiはascend mate 7を発売!

最初にゲームタイトル配列($gameTitles)を作成して、foreach分でループしています。

キーのない配列なので、[配列名 as 受取る値の変数名]で、書くことができます。

1ループずつ、$valueの中が配列の値で上書きされ、ループすることになります。

次のスマホ配列はキーと値がセットで定義されている連想配列です。

foreachでループさせる時は、[配列名 as 受取るキー名 => 受取る値の変数名]で、書くことができます。

これで、キーと値を受け取って、ループして処理をします。

次は配列の中に配列を入れるってことをしてみます。

下記をtestForeach2.phpで保存して、

実行しましょう!!(コマンド:php testForeach2.php)

<?php                                                                                                      
    $allSushi = array("軍巻" => array("鉄火巻き","納豆巻き"), 
                   "握り" => array("サーモン","はまち","エビ")
                );  

    foreach($allSushi as $type => $sushiAry){
        echo $type."\n"; 
        foreach($sushiAry as $food){
            echo "  ".$food."\n";
        }   
    } 

実行結果:

軍巻
  鉄火巻き
  納豆巻き
握り
  サーモン
  はまち
  エビ

$allSushiに配列を代入しますが、その配列の中で、「軍巻」をキーに値を配列にしたものと

「握り」をキーに値を配列にしたものを入れています。

この場合に配列の中身を全て表示させたい時、forを2重ループしてもいいですが、

foreachを使うと楽に処理できます。 $typeでキーを受け取って、$sushiAryで配列を受け取ります。

$typeを出力して、$sushiAryは配列なので、それをまたforeachで回すといった感じです。

foreach文 公式リファレンス

それでは、また。