2009-07-02 6 views
25

MySQL'den alınan değerleri bir diziye eklemem gerekiyor [PHP], elimde ne var:

$players = array(); 

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

Bunu yapmanın tek yolu bu mu? Ayrıca, aşağıdaki daha hızlı/daha iyi mi?

$players = array(); 

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

Şimdiden teşekkürler

+0

'un tadını çıkarın Sadece ilişkilendirici tuşlara (player_id) erişiyorsanız, o zaman 'mysql_fetch_assoc' kullanmak en iyisidir. Ayrıca biraz daha hızlı olan 'mysql_fetch_row' sonra' $ homePlayerRow [0] 'da kullanabilirsiniz. – DisgruntledGoat

cevap

24

bağlıdır önceden

$players = array(); 

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

Teşekkür ...

Belgeler diyor

"Eğer array_push kullanırsanız() o daha iyidir diziye bir öğe eklemenin $ array [] = kullanın çünkü bu şekilde bir işlevi çağırmanın bir yükü yoktur. "

Kaynak: http://us2.php.net/array_push

Yani bu herhangi bir anda bu diziye tıkmak istiyorum ne kadar veri aşağı kaynar. Ayrıca, array_push kullanarak adlandırdığınızda dizinin başvurusu yapılmıyorsa bir düşüş söz konusudur. $ Dizi [] kullanırsanız, dizi sizin için oluşturulacaktır.

+0

Sonunda dizi [] = ... ile gitmeye karar verdim, çünkü dizi bir aşamada çok büyük olabilir –

+2

Bir diziyi bildirmenin daha hızlı olduğuna inanıyorum ('$ arr = array()' ile) '$ kullanmadan önce arr [] = X'. Ayrıca, $ arr [] 'ifadelerinizin bazı kontrol mantığının içinde olması da yararlıdır - sonunda bir değişkeniniz var, hiçbir eleman içermeyen bir dizi. – DisgruntledGoat