今日は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で回すといった感じです。
それでは、また。
コメント