2011-02-17 39 views
0

在C++和JavaScript中,建議創建一個具有指定長度的數組,然後填充它。在PHP中有這樣的語法嗎?或者沒有必要,因爲PHP的數組是一個散列?PHP:更快地使用mysql_fetch_array的數組populatin

PS:我使用的是mysql_fetch_array填充從MySQL一個數組,我運行一個循環,它使=(

回答

1

你可以做這樣的事情:

$size = 10; 
$data = new SplFixedArray($size); 
$i = 0; 
while ($row = mysql_fetch_assoc($result)) { 
    if($data->offsetExists($i)) { 
     $data[$i] = $row; 
    } else { 
     $size += 10; 
     $data->setSize($size); 
     $data[$i] = $row; 
    } 
    $i++; 
} 

但我的建議是堅持正常的陣列。

2

您可以從標準PHP庫(SPL)使用SplFixedArray,如果性能是非常重要的在一般reguluar PHP數組會被罰款,而不必擔心陣列所需的大小。

http://www.php.net/manual/en/class.splfixedarray.php

他們的工作就像陣列中其他漢語語言做的。從文檔「的好處是,它允許更快的陣列實施「。

+0

`SplFixedArray`不適合小數組 – meze 2011-02-17 10:51:59

+0

謝謝,我從來沒有聽說過`SplFixedArray`!我將在稍後測試性能以選擇最佳方式 – Dan 2011-02-17 11:08:20

1

你根本不用擔心。
儘管理論來自一些古籍的建議,在現實生活中的實際用法的差異將可以忽略不計,你永遠不會注意到的差異。

通常的網頁很少從數據庫中填充超過100行。相信我,這樣大小的數組並不是一件值得擔心的事情。
如果它碰巧有一個更大的數組的大小,你必須首先考慮不使用數組。

+0

,但如果我們必須填充100行,那麼`SplFixedArray`比標準數組快30%(!)! ; P – meze 2011-02-17 11:02:00