當聲明PHP中的數組,該指數的可出的順序創建...即PHP陣列效率和存儲器澄清
數組[1] = 1 陣列[19] = 2 數組[4] = 3
我的問題。在創建這樣的數組時,長度是19,中間是空值?如果我試圖獲取數組[3]它會來作爲未定義或拋出一個錯誤?另外,這如何影響記憶。 3個指數的記憶會被記錄下來還是19個?
而且目前的顯影劑寫了一個腳本用3個陣列FailedUpdates [] FailedDeletes [] FailedInserts []
它是更有效的做這種方式,或者做在一個關聯陣列的情況下控制若干子陣列
"Failures" array(){
["Updates"] => array(){
[0] => 12
[1] => 41
}
["Deletes"] => array(){
[0] => 122
[1] => 414
[1] => 43
}
["Inserts"] => array(){
[0] => 12
}
}
您可以使用SPLFixedArray使用C風格的數組。創建時間並不快(速度提高了幾個百分點),但訪問速度提高了20%到30%...... – ircmaxell 2010-06-14 14:51:06
「如果您定義的數組具有非負整數作爲鍵,則這通常是預期順序。」順序與鍵的類型無關,只與鍵創建的順序無關。在OP給出的例子中,訂單將是1,19,3. – Artefacto 2010-06-14 14:52:42
Artefacto:是的,我知道。我的評論不是作爲一個明確的規則,而是作爲一般原則。很多時候當你創建一個數組時,你需要定義第0個條目,然後是第1個,然後是第2個等等。在這種情況下,這些鍵將按照預期的順序排列。當數組返回由返回非負整數索引的數組的函數時,通常也會發生這種情況。如果數組元素被定義爲「自然」順序,那麼是的,它們將按照它們定義的順序發生。 – Hammerite 2010-06-14 15:05:17