1.HashTable中的有个字段记录元素个数,每插入一个元素或者unset删掉元素时会更新这个字段。这样在进行count()函数统计数组元素个数时就能快速的返回。数组
2.在PHP中能够使用字符串或者数字做为数组的索引 , 数字索引直接就能够做为哈希表的索引,数字也无需进行哈希处理 , 在PHP数组中若是索引字符串能够被转换成数字也会被转换成数字索引。因此在PHP中例如'10','11'这类的字符索引和数字索引10, 11没有区别。函数
3.数组在插入元素的时候 , 会把字符串key计算出一个索引值 , 若是索引值中有数据 , 就在该索引位置存放一个链表 , 把新元素插到链表头上指针
可是, 元素bucket中存放着整个哈希表的链表指针 , 整个哈希表的链表顺序是按照插入的顺序进行连接的, 注意下图的红线 , 所以在foreach遍历时 , 会按照插入顺序进行输出blog
4.当哈希表设置的数组个数满了时 , 再插入元素会进行数组扩容 , 有个二倍扩容的机制 , 而且须要把原先里面的元素重新哈希到新的数组里 .索引