初めての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技術者試験初級問題なら、この辺りの出題がされそうですね。