PHPの全目次
繰り返し処理の目次
- while文
- while文をネスト
- break
- continue
- do..while文
- for文
- for文で複数の変数を変化させる
- foreach文
- foreach文でキーと値を取り出す
- foreach文で配列要素の値を変更する
foreach文
foreach文は配列に含まれる各要素の値を順に取り出し処理したい場合に便利な文です。書式は次のようになっています。
foreach (配列変数 as 変数){実行する処理1;実行する処理2;}
※配列については「配列」を参照して下さい。
要素を取り出す配列と、取り出した要素の値を格納する変数を指定します。foreach文による繰り返しでは、配列に含まれる要素の数だけ繰り返しが行われ、1回繰り返しが行われるたびに配列に含まれる要素の値を変数に代入します。
具体的な例で考えてみます。
$preflist = array(‘東京’, ‘大阪’, ‘名古屋’);
foreach ($preflist as $pref){print $pref;}
この時、次のように実行されます。
1) 配列「preflist」から要素の値「東京」を変数「pref」に代入2) 変数「pref」の値を出力3) ブロックの最後に達したのでforeach文の先頭に戻る4) 配列「preflist」から要素の値「大阪」を変数「pref」に代入5) 変数「pref」の値を出力6) ブロックの最後に達したのでforeach文の先頭に戻る7) 配列「preflist」から要素の値「名古屋」を変数「pref」に代入8) 変数「pref」の値を出力9) ブロックの最後に達したが、配列に含まれる要素の数だけ繰り返しを行ったのでforeach文を終了
while文やfor文などと異なり繰り返しが終了される条件式は存在しません。配列の要素の数だけ繰り返して終了となります。
注意する点としては配列の要素そのものを取り出しているわけではなく、要素の値を変数にコピーして代入しているだけという点です。foreach文を使って配列の要素の値を変更したい場合には「foreach文で配列要素の値を変更する」を参照して下さい。
なおwhile文と同じく「break」や「continue」を利用することが可能です。
サンプルコード
▼Example-again8-1.php
<!DOCTYPE html><html lang=”ja”><head><meta http-equiv=”Content-Type” content=”text/html;charset=UTF-8″ /><title>PHPテスト</title></head><body>
<p>PHPのテストです。</p>
<p><?php$preflist = array(‘東京’, ‘大阪’, ‘名古屋’);
foreach ($preflist as $pref){print $pref.'<br />’;}?></p>
</body></html>
上記のファイルをwwwサーバのドキュメントルート以下に設置しブラウザからアクセスすると次のように表示されます。