PHPのforeach構文による配列のアクセス順

PHPの場合はforeach構文で配列にアクセスする場合、
要素の追加順にアクセスされます。

$letters[0] = 'A';
$letters[1] = 'B';
$letters[3] = 'D';
$letters[2] = 'C';

foreach ($letters as $letter) {
    print $letter;
}

これで出力するとABDCとプリントされます。
数値キー順に順番にアクセスされるわけではないということです。

なので数値順にアクセスすることを保証したい場合
for構文を利用すること。