在php中是否保证foreach按数组顺序迭代?

在php中是否保证foreach按数组顺序迭代?,php,foreach,Php,Foreach,当一个数组被传递给foreach时,是否保证输出顺序与输入顺序相同?我知道在某些语言中,输出顺序是不保证的,因为每个元素都是同时处理的 例如,我将一个排序数组传递给foreach,以写入文件。我想确保数组将在输出文件中排序。是的……无论您给foreach的顺序是什么,它都将以相同的顺序迭代。在您的情况下,数组将在输出文件中进行排序。是-项目将按照它们在数组中的相同顺序输出。这是正确的,foreach将以与输入数组相同的顺序输出。相关参考可能不是前面提到的foreach或排序,而是数组 说: PH

当一个数组被传递给foreach时,是否保证输出顺序与输入顺序相同?我知道在某些语言中,输出顺序是不保证的,因为每个元素都是同时处理的


例如,我将一个排序数组传递给
foreach
,以写入文件。我想确保数组将在输出文件中排序。

是的……无论您给foreach的顺序是什么,它都将以相同的顺序迭代。在您的情况下,
数组将在输出文件中进行排序。

是-项目将按照它们在数组中的相同顺序输出。

这是正确的,
foreach
将以与输入数组相同的顺序输出。

相关参考可能不是前面提到的
foreach
或排序,而是数组

说:

PHP中的数组实际上是一个有序映射


(参考)上面的答案,但是看看array_multisort(),以防在执行foreach循环之前需要对数组进行排序:在阅读php
foreach
doc之后,我带着同样的问题来到这里。它并没有明确说明秩序将保持不变。我说的不是例子,也不是评论。唯一的参考是关于当前元素和下一个元素的
reset()。我刚刚查看了所谓的“引用”,没有看到任何说明PHP根据规范保留关联数组的输入顺序的内容。除非有其他更有意义的参考文献,否则这个问题仍然没有答案(正式地说),它可能取决于实现或版本。我真希望您在问题中给出一个代码示例。