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

답변

24

따라 다름 사전에

$players = array(); 

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

감사합니다 ...

문서가 말한다

"당신이 array_push를 사용하는 경우()가 더 나은의 배열에 하나 개의 요소를 추가합니다 이런 식으로 함수를 호출하는 오버 헤드가 없기 때문에 $ array [] =를 사용하십시오. "

출처 : http://us2.php.net/array_push

그래서 당신이 어떤 특정 순간에 그 배열로 벼락 공부하는 방법을 많은 데이터로 요약된다. 또한 fall-back이 있습니다. array_push를 사용하여 배열 참조가 존재하지 않으면 오류가 발생합니다. $ array []를 사용하면 배열이 생성됩니다.

+0

결국 나는 배열이 어떤 단계에서 매우 커질 수 있기 때문에 array [] = ...로 가기로 결정했다. –

+2

나는 $ array()를 사용하기 전에 배열을 선언하는 것이 더 빠르다고 믿는다. arr [] = X'. 또한'$ arr []'문이 어떤 제어 로직 안에 있다면 유용합니다 - 끝 부분에는 여전히 변수가 있습니다. 요소가없는 배열입니다. – DisgruntledGoat