给定如下的关联数组,
$field_defaults = array(
'id' => 0,
'name' => 'new item',
'desc' => '',
'parent_id' => 0,
);
Run Code Online (Sandbox Code Playgroud)
我可以依赖array_keys()按照指定的顺序返回键吗?或者,更准确地说,由于PHP中的数组似乎具有稳定的顺序,根据这个答案,返回的键array_keys()是否与它们在输入数组中出现的顺序相同?该手册不给任何提示.
当我尝试这个时,他们似乎尊重原始秩序,但我希望能够依赖这种行为.
Jon*_*Jon 35
TL; DR:从理论上讲,你不能指望它; 出于实际目的IMO你可以.
由于文档不保证订购,从技术上讲,正确的答案是"不,你不能指望".
这是因为从理论上讲,开发人员可以选择保留自己在未来更改实施的选项,这样它就不再支持现有的订单(可能是为了提高性能,或者为了获得其他好处).
现在作为一个实际问题,我们知道当前的实现遵循排序 - PHP数组是有序容器(除了其他东西之外还有一个值的链接列表) - 这是你不会期望改变的.
如果确实如此,则更改将暗示数组的内部实现中的相应重大更改,并且反过来也可能会破坏许多其他代码.我不认为它会很快发生.