初めてのPHP5 を読んでいて、foreach のところで興味深い例が紹介されていました。今回は手元にあった Ubuntu10.04, PHP5.3.2と、やや古いバージョンで行いました。
$letters[0] = "a"; $letters[1] = "b"; $letters[3] = "d"; $letters[2] = "c"; foreach ( $letters as $key => $val ) { print $key; print $val; print "n"; }
このコードを実行すると、
0a
1b
3d
2c
と表示されます。添字の順ではなく、キー値のペアを指定した順になります。
これは foreach というよりは、配列が連想配列として処理される、ということだと思われます。
$letters = array("","","",""); $letters[0] = "a"; $letters[1] = "b"; $letters[3] = "d"; $letters[2] = "c";
と、最初に4アイテム定義しておくと、あとで値を書き換えても、順序は保たれます。
0a
1b
2c
3d
$letters = array("","","","");
のあとに print_r($letters)
とすると、
Array ( [0] => [1] => [2] => [3] => )
と表示されました。
PHP技術者試験初級問題なら、この辺りの出題がされそうですね。