1.HashTable中的有個字段記錄元素個數,每插入一個元素或者unset刪掉元素時會更新這個字段。這樣在進行count()函數統計數組元素個數時就能快速的返回。數組
2.在PHP中能夠使用字符串或者數字做爲數組的索引 , 數字索引直接就能夠做爲哈希表的索引,數字也無需進行哈希處理 , 在PHP數組中若是索引字符串能夠被轉換成數字也會被轉換成數字索引。因此在PHP中例如'10','11'這類的字符索引和數字索引10, 11沒有區別。函數
3.數組在插入元素的時候 , 會把字符串key計算出一個索引值 , 若是索引值中有數據 , 就在該索引位置存放一個鏈表 , 把新元素插到鏈表頭上指針
可是, 元素bucket中存放着整個哈希表的鏈表指針 , 整個哈希表的鏈表順序是按照插入的順序進行連接的, 注意下圖的紅線 , 所以在foreach遍歷時 , 會按照插入順序進行輸出blog
4.當哈希表設置的數組個數滿了時 , 再插入元素會進行數組擴容 , 有個二倍擴容的機制 , 而且須要把原先裏面的元素重新哈希到新的數組裏 .索引