2015年11月26日

PHP 配列のループ foreach

«
»

Pocket

今回は「foreach構文」について書きたいと思います。
なお、foreach構文をより理解するためには、配列と、for / while 構文
を見ておくと理解が進むでしょう。右側サイドバーから該当カテゴリをご覧ください。
 
まずはサンプルプログラムをみてみましょう。
 

<?php

$fruits = array("Orange","Apple","Berry"); //fruitsと複数形にした

//foreachはfor文のように繰り返す命令
foreach($fruits as $fruit){ //fruitsの先頭から1つずつ$fruitに代入する
	echo $fruit;
	echo "<br>";
}

実行結果

PHP foreach

解説

PHP 配列 foreach
 
これまでのサンプルプログラムでは、配列の要素を表示するために主にprint_rを使っていました。
しかし、print_rでは一気に全ての要素が表示されたり、インデックスが表示されてしまっていました。
 
そこで、配列の要素を1つずつ(?)表示したり、各要素に応じてif文などを使う際には
foreach構文が便利になります。
 

foreach(配列変数 as 変数){
繰り返したい処理
}

foreachは上記の形式で利用し、配列変数の先頭の要素から、最後の要素まで繰返します
 
例えば、1回目のループでは配列の先頭要素である「Orange」というデータが
変数(サンプルプログラムでは$fruit)に代入されます。
※代入 = $fruitという変数に Orangeというデータを格納する
 
2回目のループでは、「Apple」が$fruitに代入されます。
この時、$fruitsからOrangeや、Appleというデータが無くなっているわけではありません
 
3回目のループを終わり、4回目に行こうとした時に、配列変数には
3つしかデータがないため、そこでforeach文は終了となります。
 
イメージとしては、図にもあるように、タンス(=配列)の引き出しを
下から(インデックスが0から)順番に開けていって、どんどん上の引き出しを開けて
一番上の引き出しを開けたら終わり、というようなイメージです。

まとめ

・foreach文は配列のfor文である。
・構文の形式は以下のようになる。

foreach(配列変数 as 変数){
繰り返したい処理
}

【関連する記事】