首頁  >  文章  >  後端開發  >  PHP的array是真正的数组吗,该如何处理

PHP的array是真正的数组吗,该如何处理

WBOY
WBOY原創
2016-06-13 13:34:20835瀏覽

PHP的array是真正的数组吗
我看PHP语法中,数组的下标除了是数字外同样可以有类似哈希的key。那么PHP中的数组对象是不是不是真正的数据结构中的ARRAY。同时,但我设定了KEY时是不是就是可以当作HASH去使用,读取的时间复杂度是不是O(1)的?

------解决方案--------------------
在PHP中, 数组是用一种HASH结构(HashTable)来实现的, PHP使用了一些机制, 使得可以在O(1)的时间复杂度下实现数组的增删, 并同时支持线性遍历和随机访问.
------解决方案--------------------

探讨

不是,他是一个链表

------解决方案--------------------
PHP的数组Array是列表List,散列表/关联数组/字典Hashtable的聚合体。
既然array具有hashtable的性质 那么通过key值读取,他的时间复杂度当然是O(1)的!
------解决方案--------------------
如果不是链表,那你如何解释一下函数
reset、prev、next、end

又,一般说 hash 表的时间复杂度是O(1)
这是理论上的,它假定键足够长
但实际应用时,键冲突是必然存在的。 hash 表在出现键冲突时采用顺序表来弥补
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn