1.HashTable中的有個欄位記錄元素個數,每插入一個元素或者unset刪掉元素時會更新這個欄位,這樣在進行count()函式統計陣列元素個數時就能快速的回傳,
2.在PHP中可以使用字串或者數字作為陣列的索引 , 數字索引直接就可以作為哈希表的索引,數字也無需進行哈希處理 , 在PHP陣列中如果索引字串可以被轉換成數字也會被轉換成數字索引,所以在PHP中例如'10','11'這類的字符索引和數字索引10, 11沒有區別,
3.陣列在插入元素的時候 , 會把字串key計算出一個索引值 , 如果索引值中有資料 , 就在該索引位置存放一個鏈表 , 把新元素插到鏈表頭上
但是, 元素bucket中存放著整個哈希表的鏈表指標 , 整個哈希表的鏈表順序是按照插入的順序進行鏈接的, 注意下圖的紅線 , 因此在foreach遍歷時 , 會按照插入順序進行輸出
4.當哈希表設定的陣列個數滿了時 , 再插入元素會進行陣列擴容 , 有個二倍擴容的機制 , 并且需要把原先里面的元素從新哈希到新的陣列里 .

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/242206.html
標籤:PHP
上一篇:PHP設計模式之建造者模式
下一篇:DRF視圖的使用及原始碼流程分析
