foreach文を使った繰り返し処理の方法

foreach 文は PHP の繰り返し処理を行う構文の一つで、配列やオブジェクトに含まれる要素を順に取り出して処理したい場合に便利です。ここでは PHP で foreach 文の使い方について解説します。

foreach文の使い方

foreach 文は配列やオブジェクトに含まれる各要素の値を順に取り出し処理したい場合に便利な文です。書式は次のようになっています。

foreach (配列またはオブジェクト as 変数){
  実行する処理1;
  実行する処理2;
  ・・・
}

※配列については「配列」を参照して下さい。

配列(またはオブジェクト)とから要素を取り出し変数に代入し、その後でブロック内の処理が実行されます。要素の数だけ繰り返し行い、取り出す要素がなくなると foreach 文が終了します。

具体的な例で考えてみます。

$preflist = array("東京", "大阪", "愛知");

foreach ($preflist as $pref){
  echo $pref, "\n";
}

この時、次のように実行されます。

1) 配列の要素「東京」が変数 $pref に代入される
2) 変数 $pref の値を出力する
3) 処理の末尾に達したので次の要素があるか確認する
4) 配列の要素「大阪」が変数 $pref に代入される
5) 変数 $pref の値を出力する
6) 処理の末尾に達したので次の要素があるか確認する
7) 配列の要素「愛知」が変数 $pref に代入される
8) 変数 $pref の値を出力する
9) 次の要素がないためforeach文を終了する

while 文や for 文などと異なり、繰り返しが終了される条件式は存在しません。配列やオブジェクトの要素の数だけ繰り返して終了となります。

注意する点としては配列の要素そのものを取り出しているわけではなく、要素の値を変数にコピーして代入しているだけという点です。 foreach 文を使って配列の要素の値を変更したい場合には「foreach文で配列要素の値を変更する」を参照して下さい。

なお foreach 文でも break 文や continue 文を使用できます。詳しくは「break文とcontinue文を使った繰り返し処理の制御」を参照されてください。

サンプルコード

では簡単なプログラムで試してみます。

<?php
$preflist = array("東京", "大阪", "愛知");

foreach ($preflist as $pref){
  echo $pref, "\n";
}

作成したプログラムを sample.php として保存しました。その後でコマンドプロンプトを起動し、次のように実行しました。

php sample.php

foreach文の使い方

foreach 文を使って配列に含まれる要素を順に取得し出力しました。

-- --

PHP で for 文の使い方について解説しました。

( Written by Tatsuo Ikura )

プロフィール画像

著者 / TATSUO IKURA

これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。