PHP の組込み関数 foreach は、配列の全要素をループ処理するときに使えます。
while や for と使い分けると、読みやすいコードを書くことができます。
参考
while や for 文によるループ処理は「ループ - while文・for文」にまとめています。
foreach 文
PHP の foreach 文には、配列と連想配列に使える「基本形」と、
連想配列に便利な「拡張形」の2種類の構文があります。
参考
配列と連想配列については「配列と連想配列」にまとめています。
foreachの構文
// 基本形の構文
foreach (配列 as 要素の[値]を格納する変数) {
ループ処理;
}
// 拡張形の構文
foreach (連想配列 as 要素の[添字]を格納する変数 => 要素の[値]を格納する変数) {
ループ処理;
}
foreach 文のサンプル
1 2 3 4 5 6 7 8 9 10 11 12 |
<?php $table = array("PHP", "Program", "sanachan"); foreach ($table as $value) { echo "value=$value\n"; } $table = array("LANG" => "PHP", "KIND" => "Program"); foreach ($table as $key => $value) { echo "$key=$value\n"; } ?> |
実行結果
value=PHP
value=Program
value=sanachan
LANG=PHP
KIND=Program
ワンポイント:PHP の foreach は参照渡しができる
PHP5 から、配列だけでなくオブジェクトを foreach で処理できるようになりました。
ループ処理は、オブジェクトのアクセス権があるすべての変数に対して行われます。
また、要素の値を格納する変数に「&」を付けることにより、参照渡しができるようになり、
要素の値を変更することができます。
1 2 3 4 5 6 7 8 |
<?php $table = array(10, 20, 30); foreach ($table as &$value) { $value = $value / 10; } print_r($table); ?> |
実行結果
Array
(
[0] => 1
[1] => 2
[2] => 3
)