2012-03-31 45 views
4

如果此問題已在其他地方得到解答,但我無法找到它(可能是因爲我有困難的時間恰當地解決了我的問題)。未使用偏移量的PHP數組內存消耗

我正在使用一個雙維數組,它是數據庫查詢的結果集。香港專業教育學院得到了陣列設置,以便該數組的第一個索引是行陣列的PK讓陣列看起來像......

$array[345] = {'id' => 345, 
       'info1' => 'lorem', 
       'infor2' => 'ipsum'} 

$array[448] = {'id' => 448, 
       'info1' => 'lorem', 
       'infor2' => 'ipsum'} 

我的問題......我知道該指數被作爲整數傳遞。所以,我想(可能是錯誤地)他們被數組視爲數值偏移(而不是關聯性)。因此,如果第一個索引是345,那麼系統會自動爲索引0到344在內存中保留空間?代碼完美地工作,但我想知道這種方法是否會吃掉一大堆內存。特別是如果我到了只有兩個數組存儲在322,343和554,324的點。對不起,如果這是一個愚蠢的問題,謝謝任何答案。

回答

4

否,陣列是包含HashMap和密鑰不相同的偏移量,e.g

$foo = array(0 => 'x', 1000 => 'y') 

是隻有兩個元素。中間沒有任何保留。

+0

謝謝你的幫助 – dgeare 2012-04-05 18:34:52