2009-07-02 85 views
25

我需要從MySQL接收的值添加到一個數組[PHP],這裏是我有:

$players = array(); 

while ($homePlayerRow = mysql_fetch_array($homePlayerResult)) { 
    $players[] = $homePlayerRow['player_id']; 
} 

這是做這件事的唯一途徑? ,下面更快/更好?

$players = array(); 

while ($homePlayerRow = mysql_fetch_array($homePlayerResult)) { 
    array_push($players, $homePlayerRow['player_id']); 
} 

在此先感謝

+0

如果您只訪問關聯密鑰(player_id),那麼最好使用`mysql_fetch_assoc`。你也可以使用`mysql_fetch_row`和`$ homePlayerRow [0]`,這個速度稍微快一些。 – DisgruntledGoat 2009-07-08 17:11:52

回答

24

取決於...

文件說

「如果你使用array_push()一個元素添加到它的更好的數組使用$ array [] =因爲這樣就沒有調用函數的開銷。「

來源:http://us2.php.net/array_push

所以它歸結到你想要多少數據塞進數組在任何特定時刻。另外,如果使用array_push調用數組時引用的數組不存在,則會出現回退,您會遇到錯誤。如果使用$ array [],則會爲您創建數組。

+0

最後,我決定去數組[] = ...因爲在某個階段數組可能會變得非常大 – 2009-07-02 14:10:10

+2

我相信在使用$之前聲明一個數組(使用`$ arr = array()`)會更快arr [] = X`。如果你的`$ arr []`語句在一些控制邏輯內部,這也很有用 - 你最後還有一個變量,一個沒有元素的數組。 – DisgruntledGoat 2009-07-08 17:07:25