PHP中是否保证关联数组的顺序?

当我在PHP中的associatve数组上执行foreach循环时,执行它的顺序是它的定义顺序.

例如:

$arr = array("z" => "z", "a" => "a", "b" => "b");

foreach($arr as $key => val)
  print("$key: $val\n");

输出

z: z
a: a
b: b

$arr = array("a" => "a", "b" => "b", "z" => "z");

输出

a: a
b: b
z: z

那么我的问题是:这种行为是在规范级别定义的吗?我可以合理地确定在将来的PHP版本中不会更改此行为吗?

解决方法:

PHP Manual

An array in PHP is actually an ordered
map. A map is a type that associates
values to keys. This type is optimized
for several different uses; it can be
treated as an array, list (vector),
hash table (an implementation of a
map), dictionary, collection, stack,
queue, and probably more.

Arrays are ordered. The order can be
changed using varIoUs sorting
functions.

因此,您可以确定(至少目前)订单将得到维护.如果这种行为发生变化,我会非常惊讶,因为它是明确说明的,因此会有大量依赖它的代码.

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...