2011-01-19 12 views
47

配列がforeachに渡されるとき、入力と同じ出力順序が保証されますか?いくつかの言語では、各要素が同時に処理されるため、出力順序が保証されていないことが分かります。foreachはPHPで配列の順番に反復処理されることが保証されていますか?

たとえば、ソートされた配列をforeachに渡してファイルに書き出します。私は配列が出力ファイルでソートされることを確認したい。

+3

*(参照)*あなたは配列をソートする必要がhttp://php.net/manual/en/control-structures.foreach.php – Gordon

+0

上記の回答が、場合array_multisort()を見てforeachループを実行する前に: http://php.net/manual/en/function.array-multisort.php – o1iver

+2

私はphp 'foreach'docを読んだ後、同じ質問でここに来ました。それは順序が残ることを明示的に述べていない。私はどちらのコメントも例ではない。唯一の参考資料は、現在の要素と次の要素についての 'reset()'です。 – Sebastian

答えて

30

はい...あなたがforeachに与える順序は、同じ順序で繰り返されます。あなたの場合array will be sorted in the output file.

+1

+1 - 私にそれを打つ! – Fenton

2

はい - 項目は配列内の同じ順序で出力されます。

8

これは正しいです、foreachは入力配列と同じ順序で出力します。

12

関連する参考文献は、foreachのようなものではなく、前述のようにソートされていても、配列のものではないことがあります。

Language reference — Arraysは言う:

PHPの配列は、実際に注文したマップです。

関連する問題