for文は回数を指定して繰り返し処理をしますが、foreach文はデータの集合に対して繰り返し処理を行ないます。データの集合(配列やオブジェクト)の要素を順番に利用することが簡単に行なえます。
foreach文の書式1 |
---|
foreach(データの集合 as 変数名){ 処理; } |
変数の代わりにキー変数と値変数(マップ)を指定することもできます。それにより、連想配列のキー名をループの中で扱えるようになります。
foreach文の書式2 |
---|
foreach(データの集合 as キー変数名 => 値変数名){ 処理; } |
○ ファイル
次のようにファイルを作成してください。
ファイルの種類 | PHP ファイル |
---|---|
ファイル名 | foreachtest.php |
○ プログラム
次のようにプログラムを入力してください。
○ 実行結果
○ 解説
3、4行目で配列fruitsと、連想配列employeeを初期化しています。10行目で指定した集合(fruits配列)の要素を先頭から1つ取り出して、変数$fruitに格納しています。11行目では取り出したデータを表示しています。繰り返し処理が終了すると、fruits配列から次の要素を取り出し、繰り返し処理をします。取り出す要素がなくなると繰り返しを終了します。 17行目では指定した集合(employee配列)の要素を先頭から一つ取り出して、キー名を変数$keyに、値を変数$valに格納します。18行目ではそれぞれの変数を表示しています。繰り返しが終了すると、employee配列から次の要素を取り出し、取り出す要素がなくなるまで続けます。
このサンプルのように、foreach文を使用すると、for文と違い、配列の要素数を調べてそれに応じた回数を指定して処理を記述しなくてもよくなります。データの集合を指定するだけで、要素内を順番に、用意した変数に格納してくれます。foreachブロック内では、その変数を利用して処理を行ない、繰り返し処理が終わると、次の要素のデータを変数に取り出し、処理を行なうことができます。