码迷,mamicode.com
首页 > Web开发 > 详细

php array_push 与 $arr[]=$value 性能比较

时间:2019-11-17 11:04:11      阅读:117      评论:0      收藏:0      [点我收藏+]

标签:结果   print   push   ndt   i++   lod   php   float   art   

使用array_push压入1000000个元素
<pre>
<?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;
}
?>
</pre>
执行时间:2735.545158 ms
<?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;
}
?>
执行时间:417.458057 ms

结果:每次压入一个元素,使用$arr[]=$value比使用array_push方法快7倍。

同时压入多个元素比较

使用array_push方法,压入100000个元素,每次压入50个元素
<pre>
<?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;
}
?>
</pre>
执行时间:250.149012 ms

结果:使用array_push一次压入多个元素,比多次使用$arr[]=$value压入快。array_push一次压入的元素越多,则效率越高。

php array_push 与 $arr[]=$value 性能比较

标签:结果   print   push   ndt   i++   lod   php   float   art   

原文地址:https://www.cnblogs.com/newmiracle/p/11875327.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!