PHP数组查找时间


php array lookup time

我只是想梳理一下,找到答案:http://svn.php.net/viewvc/php/php-src/

但是我找不到。在c++中,<map>被实现为具有const键值的平衡二叉搜索树。这很好,你得到O(log n)搜索,插入,删除等运行时。O(n)枚举时间。

我想知道的是PHP数组的底层数据结构。有一些关于PHP数组的帖子说:"它们做的事情几乎是一样的,所以不用担心!"不是我想要的。是O(1)(哈希表)或O(log n)(平衡二叉树)查找?(例如)

如果有人可以帮助我或指出正确的PHP C源文件,那将是非常棒的(虽然一点解释会很好-我真的不擅长C)。或者如果你只是对PHP数组有很酷的见解,那也很好-我试图理解整个底层数据结构。

PHP中的数组实际上是一个有序映射。映射是一种类型将值关联到键。这种类型针对几种类型进行了优化不同的使用;它可以被视为数组,列表(向量),散列表(map的实现),字典,集合,堆栈,排队,可能还有更多。由于数组值可以是其他数组、树多维数组也是可能的。

这个实现实际上是某种HashTable

-> http://php.net/manual/en/language.types.array.php
->如何在C级实现PHP数组?