当将数组传递给 foreach 时,输出顺序是否保证与输入顺序相同?我知道在某些语言中,输出顺序不保证,因为每个元素同时处理。例如,我将已排序的数组传递给 foreach 来写入文件。 我希望确保数组在输出文件中按顺序排列。
foreach
文档后也有同样的问题。文档并没有明确说明顺序是否会保持不变。我不是在谈论示例或注释。唯一的参考是关于当前元素和下一个元素的reset()
。 - Sebastian$a = []; $a[ 0 ] = 'zero'; $a[ 2 ] = 'two'; $a[ 1 ] = 'one'; var_export( $a );
您将看到内部顺序是[ 0, 2, 1 ]
。如果您执行foreach( $a as $n ){ echo $n . " "; }
您将看到zero two one
。 - Xavi Montero