2009-07-02 10 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

答えて

16

uが実行され、そのarray_pushはあなたのコードを実行し、いくつかのケース

http://snipplr.com/view/759/speed-test-arraypush-vs-array/

で遅くなることがわかります。 enjoy

+0

ちょうどそのリンクをテストし、それが正しい、今は何のバイアグラを指していません。 :) –

24

のおかげでは」、

ドキュメントが言う...依存

そのようにして関数呼び出しのオーバーヘッドがないので、$ array [] =を使用してください。

出典:http://us2.php.net/array_push

だから、それはあなたが任意の特定の瞬間にその配列の中に詰め込むしたいどのくらいのデータに沸きます。さらに、フォールバックがあります.Array_pushを使用して配列参照が存在しない場合は、エラーが発生します。 $ array []を使うと、配列が作成されます。

+0

最終的に私はarray [] = ...を使うことに決めました。配列がある段階で非常に大きくなるかもしれないので、 –

+2

私は '$ arr = array()'を使って) arr [] = X'。 '$ arr []'文が何らかの制御ロジックの中にある場合にも便利です。最後に変数があり、要素のない配列があります。 – DisgruntledGoat

関連する問題