[PHP] PHP数组的哈希表实现
发布时间:2021-05-21 06:55:38 所属栏目:大数据 来源: https://www.jb51.cc
导读:1.HashTable中的有个字段记录元素个数,每插入一个元素或者unset删掉元素时会更新这个字段。这样在进行count()函数统计数组元素个数时就能快速的返回。 2.在PHP中可以使用字符串或者数字作为数组的索引,数字索引直接就可以作为哈希表的索引,数字也无需进行
1.HashTable中的有个字段记录元素个数,每插入一个元素或者unset删掉元素时会更新这个字段。这样在进行count()函数统计数组元素个数时就能快速的返回。 2.在PHP中可以使用字符串或者数字作为数组的索引,数字索引直接就可以作为哈希表的索引,数字也无需进行哈希处理,?在PHP数组中如果索引字符串可以被转换成数字也会被转换成数字索引。所以在PHP中例如'10','11'这类的字符索引和数字索引10, 11没有区别。 ? 3.数组在插入元素的时候,会把字符串key计算出一个索引值,如果索引值中有数据,就在该索引位置存放一个链表,? 把新元素插到链表头上 但是,元素bucket中存放着整个哈希表的链表指针,整个哈希表的链表顺序是按照插入的顺序进行链接的,注意下图的红线,因此在foreach遍历时,会按照插入顺序进行输出 4.当哈希表设置的数组个数满了时,再插入元素会进行数组扩容,有个二倍扩容的机制,并且需要把原先里面的元素从新哈希到新的数组里 . ? (编辑:北几岛) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |