有人可以解释PHP如何实现关联数组吗?PHP使用什么底层数据结构?PHP散列密钥并将其存储在某种哈希映射中吗?我很好奇,因为我想知道在插入和搜索键时关联数组的性能.
这是一个哈希表.类型声明和散列函数在这里:http://svn.php.net/viewvc/php/php-src/trunk/Zend/zend_hash.h?view =
markup
spl中有一个轻量级数组和一个链表(标准php lib)
嗯,对于它的价值,所有 PHP数组都是关联数组.
最高投票的答案链接被打破,并没有给出那么多解释.
PHP是用C语言编写的,底层结构只是一个C数组.C数组只是内存的一部分.C数组中的索引必须是连续的,不能有索引0和后面的索引1000.为了使关联数组键工作,在将它们添加到C数组之前,它们通过散列函数转换为适当的C索引.
为了得到完整的解释,我发现这个链接提供了更多信息.
http://nikic.github.io/2012/03/28/Understanding-PHPs-internal-array-implementation.html