Home  >  Article  >  Backend Development  >  Performance comparison between php array_push and $arr[]=$value

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

jacklove
jackloveOriginal
2018-06-09 10:27:391742browse

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 $... ] )

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 effect is the same as the following:

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

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

Use array_push to push 1,000,000 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;
}?>

Execution time: 2735.545158 ms

##Use $arr[] = $value to push 100000 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;
}?>

Execution time: 417.458057 ms

Result: push one element at a time, use $arr []=$value is 7 times faster than using the array_push method.

3. Push multiple elements at the same time for comparison

Use the 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;
}?>

Execution time: 250.149012 ms

Result: Use array_push to push multiple elements at once, which is better than multiple times Use $arr[]=$value to push fast. 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 efficient because there is no need to repeatedly obtain the pointer to the end of the file.

Result: Pushing one element at a time, using $arr[]=$value is faster than using the array_push method7 times.

This article explains the performance comparison between php array_push and $arr[]=$value. For more related content, please pay attention to the php Chinese website.

Related recommendations:

About the instructions for using the mysql timestamp formatting function from_unixtime

About the instructions for using the mysql functions concat and group_concat

Explanation on how to deal with mysql innodb startup failure and unable to restart

The above is the detailed content of Performance comparison between php array_push and $arr[]=$value. For more information, please follow other related articles on the PHP Chinese website!

Statement:
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