Home >Backend Development >PHP Tutorial >Performance comparison between php array_push and $arr[]=$value
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;?>
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(' ', 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(' ', 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.
<?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(' ', 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.
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!