2011-02-17 4 views
0

C++과 JavaScript에서는 지정된 길이의 배열을 생성 한 다음 채우는 것이 좋습니다. PHP에서 그렇게하는 구문이 있습니까? 아니면 PHP 배열이 해시이기 때문에 필요 없습니다.PHP : mysql_fetch_array를 사용한 더 빠른 배열 populatin

추신 : 나는 mysql_fetch_array를 사용하여 MySQL의에서 배열을 채우는 그리고 난 그것에 루프를 실행하는거야 그래서 = (

는 성능이 매우 중요

답변

1

당신은 그런 일 할 수 있습니다

$size = 10; 
$data = new SplFixedArray($size); 
$i = 0; 
while ($row = mysql_fetch_assoc($result)) { 
    if($data->offsetExists($i)) { 
     $data[$i] = $row; 
    } else { 
     $size += 10; 
     $data->setSize($size); 
     $data[$i] = $row; 
    } 
    $i++; 
} 

을하지만 내 조언은 정상 배열에 충실한다.

+0

하지만'mysql_num_rows'를 사용하여'SplFixedArray'의 정확한 크기를 찾을 수 있습니다. 그게 내가 필요한 것 같아! – Dan

+0

다른 장소에서 한 줄의 코드를 다시 작성하지 않고도 일반 배열로 SplFixedArray를 완전히 사용할 수 있기를 바랍니다 ... – Dan

2
당신은 표준 PHP 라이브러리 (SPL)에서 SplFixedArray을 사용할 수 있습니다

입니다 경우 . 일반적으로 reguluar에서 PHP의 배열이 필요 배열의 크기에 대한 걱정없이, 잘 될 것입니다. 배열이 다른되는 언어의에서처럼 그들은 작동

http://www.php.net/manual/en/class.splfixedarray.php

. 워드 프로세서 "의 장점은 빠른 배열을 수 있다는 것입니다 구현. "

+0

'SplFixedArray'는 작은 배열에는 적합하지 않습니다. – meze

+0

감사합니다.'SplFixedArray'에 대해 들어 본 적이 없습니다! 나중에 성능을 테스트하여 – Dan

1

전혀 걱정할 필요가 없습니다.
에도 불구하고 일부 고대 책에서 나온의 권장 사항은 실생활 실제 사용 차이점은 무시할 수 있으며 그 차이를 결코 눈치 채지 못할 것입니다.

데이터베이스의 행 수가 100 개가 넘는 일반적인 웹 페이지입니다. 저를 믿으십시오, 그런 크기의 배열은 대략 걱정할 것이다 것이 아니다.
배열의 크기가 훨씬 커지면 배열을 사용하지 않는 것이 좋습니다.

+0

이라는 최상의 방법을 선택 하겠지만 100 행을 채워야한다면'SplFixedArray'는 표준 배열보다 30 % (!) 빠릅니다! ; P – meze

관련 문제