Evi*_*Elf 10 php associative-array
将新值推送到索引数组时
$array[] = 'new value';
Run Code Online (Sandbox Code Playgroud)
PHP文档解释了如何在[MAX_INDEX + 1]位置添加它.
将新值推送到关联数组时
$array['key'] = 'new value';
Run Code Online (Sandbox Code Playgroud)
它的工作方式相同,但我没有在文档中看到任何解释来确认它是如何或为什么这样做的.订单似乎在我的实施中是一致的,但我怎么知道订单将保持不变?有谁知道PHP如何在后端实现这一点?
PHP 中关联数组是如何实现的?可能会给你一些见解。
看来 PHP 数组本质上是哈希表,因此数组的顺序将保持不变,直到您重新排序(例如通过对数组进行排序)。
编辑:看来这被否决了,请允许我在下面的评论中明确包含我链接到的来源......
“PHP 关联数组实际上是 HashTables 的实现”,来自 PHP 数组在 C 级别上是如何实现的?
同样来自该来源:“PHP 数组是一个链式哈希表(在键冲突时查找 O(c) 和 O(n)),允许使用 int 和 string 键。它使用 2 种不同的哈希算法来将这两种类型适应相同的哈希键空间。”
“一切都是哈希表”来自http://nikic.github.io/2012/03/28/Understanding-PHPs-internal-array-implementation.html