foreach
- 2013 7/31
foreach は、配列を反復処理するための便利な方法です。
指定された配列/連想配列に対して先頭から順に繰り返し処理を行います。
配列の場合
foreach(配列 as 値変数):
処理
endforeach;
foreach(配列 as 値変数):
処理
endforeach;
サンプルコード
1 2 3 4 5 |
$preflist = array(1,2); foreach ($preflist as $value): print $value."<br>"; endforeach; |
連想配列の場合
foreach(配列 as キー変数 => 値変数):
処理
endforeach;
foreach(配列 as キー変数 => 値変数):
処理
endforeach;
サンプルコード
1 2 3 4 5 |
$preflist = array('Tokyo' => '東京', 'Osaka' => '大阪'); foreach ($preflist as $key => $value): print 'キー'.$key.'の値は'.$value.'です<br>'; endforeach; |
このように配列の要素数がある分だけ繰り返し処理をしてくれます。
また連想多次元配列でも使用ができます。
サンプルコード
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
<?php $food = array( "vegetable" => array( "carrot"=> "にんじん", "tomato" => "トマト", "onion" => "たまねぎ" ), "fruit" => array( "apple" => "りんご", "orange" => "オレンジ", "grape" => "ぶどう" ) ); foreach( $food as $key1 => $val1 ){ echo "--".$key1. "--<br />\n"; foreach( $val1 as $key2 => $val2 ){ echo $key2. ":" .$val2."<br />\n"; } } ?> |
PHP5.5からは多次元配列をlist()関数を使いながら反復処理ができます。が!! みなさんのXAMPP環境はPHP5.4系なのでこれはエラーが出ます。
1 2 3 4 5 6 7 8 9 10 |
$array = [ [1, 2], [3, 4], ]; foreach ($array as list($a, $b)) { // $a にはネストした配列の最初の要素が含まれ、 // $b には二番目の要素が含まれます。 echo "A: $a; B: $b\n"; } |