>백엔드 개발 >PHP 튜토리얼 >PHP array_push와 $arr[]=$value 간의 성능 비교

PHP array_push와 $arr[]=$value 간의 성능 비교

jacklove
jacklove원래의
2018-06-09 10:27:391814검색

1.array_push 메소드

array_push 메소드는 하나 이상의 요소를 배열의 끝에 푸시합니다.

int array_push ( array &$array , mixed $var [, mixed $... ] )

array_push()는 배열을 스택으로 처리하고 전달된 변수를 배열 끝에 푸시합니다. 배열의 길이는 스택에 푸시된 변수의 수에 따라 늘어납니다.
아래와 같은 효과:

<?php$arr[] = $value;?>

2. array_push와 $arr[]=$value 성능 비교

array_push를 사용하여 1000000개 요소 푸시

<?php$starttime = get_microtime();$arr = array();for($i=0; $i<1000000; $i++){
    array_push($arr, $i);
}$endtime = get_microtime();
printf("run time %f ms\r\n", ($endtime-$starttime)*1000);function get_microtime(){
    list($usec, $sec) = explode(&#39; &#39;, microtime());    return (float)$usec + (float)$sec;
}?>

실행 시간: 2735.545158ms

밀고 $arr[] = $value

<?php$starttime = get_microtime();$arr = array();for($i=0; $i<1000000; $i++){    $arr[] = $i;
}$endtime = get_microtime();
printf("run time %f ms\r\n", ($endtime-$starttime)*1000);function get_microtime(){
    list($usec, $sec) = explode(&#39; &#39;, microtime());    return (float)$usec + (float)$sec;
}?>

을 사용하는 100000개 요소 실행 시간: 417.458057 ms

결과: $arr[]=$value를 사용하여 한 번에 하나의 요소를 푸시하는 것이 The를 사용하는 것보다 낫습니다. array_push 방법은 7배 빠릅니다.

3. 비교를 위해 동시에 여러 요소 푸시

array_push 방법을 사용하여 100000개 요소, 매번 50개 요소 푸시

<?php$starttime = get_microtime();$arr = array();for($i=0; $i<1000000; $i=$i+50){
    array_push($arr, $i,$i+1,$i+2,$i+3,$i+4,$i+5,$i+6,$i+7,$i+8,$i+9,$i+10,        $i+11,$i+12,$i+13,$i+14,$i+15,$i+16,$i+17,$i+18,$i+19,        $i+21,$i+22,$i+23,$i+24,$i+25,$i+26,$i+27,$i+28,$i+29,        $i+31,$i+32,$i+33,$i+34,$i+35,$i+36,$i+37,$i+38,$i+39,        $i+41,$i+42,$i+43,$i+44,$i+45,$i+46,$i+47,$i+48,$i+49);
}$endtime = get_microtime();
printf("run time %f ms\r\n", ($endtime-$starttime)*1000);function get_microtime(){
    list($usec, $sec) = explode(&#39; &#39;, microtime());    return (float)$usec + (float)$sec;
}?>

실행 시간: 250.149012ms

결과: 사용 array_push 한 번에 여러 요소를 푸시하는 것이 $arr[]=$value를 여러 번 사용하는 것보다 빠릅니다. array_push가 한 번에 더 많은 요소를 푸시할수록 더 효율적입니다.

요약:

요소를 푸시하는 경우 $arr[]=$value를 사용하면 함수 호출에 따른 추가 부담을 줄일 수 있으므로 효율적입니다.
여러 요소가 동시에 푸시되는 경우 파일 끝 부분에 대한 포인터를 반복적으로 얻을 필요가 없으므로 array_push를 사용하는 것이 더 효율적입니다.

결과: $arr[]=$value를 사용하면 한 번에 하나의 요소를 푸시하는 것이 array_push 메서드를 사용하는 것보다 7배 빠릅니다.

이 기사에서는 php array_push와 $arr[]=$value의 성능 비교에 대해 설명합니다. 더 많은 관련 내용을 보려면 PHP 중국어 웹사이트를 참고하세요.

관련 권장사항:

mysql 타임스탬프 형식 지정 함수 from_unixtime

mysql 함수 concat 및 group_concat 사용에 대한 지침

mysql innodb 오류를 처리하는 방법에 대한 설명 시작하고 다시 시작할 수 없습니다

위 내용은 PHP array_push와 $arr[]=$value 간의 성능 비교의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.