Performance comparison of php array_push and $arr[]=$value

PHP中文网
Release: 2023-02-28 22:44:01
Original
1439 people have browsed it

1.array_push method

array_push method, pushes one or more elements to the end of the array.

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

array_push() treats the array as a stack and pushes the passed variables into the end of the array. The length of the array will increase according to the number of variables pushed onto the stack.
The same effect as the following:

<?php
$arr[] = $value;
?>
Copy after login

2. Compare array_push and $arr[]=$value performance

Use array_push to push 1000000 elements

<?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;
}
?>
Copy after login

Execution time: 2735.545158 ms

Use $arr[] = $value pushes 100,000 elements

<?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;
}
?>
Copy after login

Execution time: 417.458057 ms

Result: Each time one element is pushed, using $arr[]=$value is 7 times faster than using the array_push method.

3. Push multiple elements at the same time for comparison

Use array_push method to push 100000 elements, 50 elements each time

<?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;
}
Copy after login

Execution time: 250.149012 ms

Result: Use array_push to push multiple elements at one time , faster than using $arr[]=$value multiple times to push. The more elements array_push pushes in at one time, the more efficient it is.

Summary:

If you are pushing an element, using $arr[]=$value is efficient because it can save the extra burden of calling functions.
If multiple elements are pushed at the same time, using array_push is more efficient because there is no need to repeatedly obtain the pointer to the end of the file.


Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template