【发布时间】:2012-06-10 11:58:51
【问题描述】:
我来自python背景,类似的python数据类型(字典)是一组无序键值对。
我想知道 PHP 关联数组是否是无序的?它们似乎是有序的。
$test = array(
'test' => 'test',
'bar' => 'bar',
);
var_dump($test);
var_dump(array_slice($test, 0, 1));
测试总是出现在 bar 之前,我可以像你看到的那样对这个数组进行切片。那么这是否总是保证跨 php 版本订购?顺序只是我声明数组的顺序吗?那么有什么东西在内部指向“测试”以将 [0] 放在数组中?我已经阅读了http://php.net/manual/en/language.types.array.php,但它并没有对这个问题提供太多的启示。我很欣赏你的回应。类型
【问题讨论】:
-
这些答案中有几个是指 PHP 手册,其中指出数组是有序的。但这根本不能回答最初的问题。所问的是(默认)顺序是!默认顺序似乎是分配元素的顺序,但是文档在哪里说明我们可以依靠这个从一个版本到下一个版本?
-
我在bugs.php.net/bug.php?id=76119 提出了一个关于缺少文档的问题,结果发现顺序始终是键添加到数组中的顺序(仅更改数组元素的值不会更改顺序的数组)。可以在github.com/php/php-langspec/blob/master/spec/12-arrays.md 找到语言规范
-
在Python3.6及以上是有序的。
标签: php arrays dictionary