关联数组元素是隐式排序的。
据我所知,他们在JS(对象)中的模拟不能保证元素顺序。
array_slice
是一个依赖于元素顺序的函数。
是否可以安全地假设array_slice的结果与使用foreach
语句迭代关联数组的顺序一致?
答案 0 :(得分:4)
PHP的数组和Javascript的对象无法比较。
PHP的数组是有序的,关联的数据结构。 Javascript没有任何等价物。* PHP的数组不是隐式有序,它们是显式有序。这适用于数字和字符串键。
是的,array_slice
可以安全地使用它们。请注意,它有一个明确的$preserve_keys
参数,如果要保持数组关联,则必须将其设置为true
;否则他们将被重新编入数字索引。
* Javascript只有基本上无序的关联对象。最近的ECMAScript版本为它们指定了一些顺序,但用户并不能真正控制它。 Javascript的Array
在这些无序对象之上添加了一种使用模式,它允许您拥有有序但非关联的数据结构。