2009-07-02 22 views
25

muszę dodać wartości otrzymanych z MySQL do tablicy [php], oto co mam:

$players = array(); 

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

Jest to jedyny sposób to zrobić? Również poniższe, jest następujące szybciej/lepiej?

$players = array(); 

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

Dzięki z góry

+0

Jeśli masz dostęp tylko do kluczy asocjacyjnych (player_id), najlepiej użyć 'mysql_fetch_assoc'. Możesz również użyć 'mysql_fetch_row', a następnie' $ homePlayerRow [0] ', co jest nieco szybsze. – DisgruntledGoat

Odpowiedz

24

Zależy ...

Dokumentacja mówi,

„Jeśli używasz array_push(), aby dodać jeden element do tablicy lepiej użyj $ tablica [] =, ponieważ w ten sposób nie ma żadnych kosztów wywoływania funkcji. "

Źródło: http://us2.php.net/array_push

Więc to sprowadza się do tego, jak dużo danych, które chcą się dopchać do tej tablicy w danym momencie. Dodatkowo istnieje cofnięcie, jeśli odwołanie do tablicy nie istnieje, gdy wywołasz ją za pomocą array_push, spowoduje to błąd. Jeśli użyjesz $ tablica [], tablica zostanie utworzona dla ciebie.

+0

W końcu zdecydowałem się na tablicę [] = ... ponieważ tablica może stać się bardzo duża na pewnym etapie –

+2

Wierzę, że szybciej jest zadeklarować tablicę (z '$ arr = array()') przed użyciem '$ arr [] = X'. Jest to również użyteczne, jeśli twoje instrukcje '$ arr []' znajdują się w pewnej logice sterującej - wciąż masz zmienną na końcu, tablicę bez elementów. – DisgruntledGoat