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

array_push方法

array_push 方法,将一个或多个元素压入数组的末尾。

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

array_push() 将array当成一个栈,并将传入的变量压入array的末尾。array的长度将根据入栈变量的数目增加。 
与下效果相同:

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

比较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 msrn", ($endtime-$starttime)*1000);   function get_microtime(){     list($usec, $sec) = explode(' ', microtime());     return (float)$usec + (float)$sec; } ?>

执行时间:2735.545158 ms

使用$arr[] = $value压入100000个元素

<?php $starttime = get_microtime(); $arr = array(); for($i=0; $i<1000000; $i++){     $arr[] = $i; } $endtime = get_microtime(); printf("run time %f msrn", ($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个元素

<?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 msrn", ($endtime-$starttime)*1000);   function get_microtime(){     list($usec, $sec) = explode(' ', microtime());     return (float)$usec + (float)$sec; } ?>

执行时间:250.149012 ms

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

总结

如果是压入一个元素,使用$arr[]=$value效率高,因为可以节省调用函数的额外负担。 
如果同时压入多个元素,使用array_push效率高,因为不用重复获取文件尾的指针。

腾讯云限时秒杀【点击购买】

搬瓦工,CN2高速线路,1GB带宽,电信联通优化KVM,延迟低,速度快,建站稳定,搬瓦工BandwagonHost VPS优惠码BWH26FXH3HIQ,支持<支付宝> 【点击购买】!

Vultr$3.5日本节点,512M内存/500G流量/1G带宽,电信联通优化,延迟低,速度快【点击购买】!

阿里云香港、新加坡VPS/1核/1G/25G SSD/1T流量/30M带宽/年付¥288【点击购买】

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

`微信`扫码 加好友

链接到文章: https://gkxyz.com/php-array_push-yu-arrvalue-xingnengbijiao.html

推荐站点

  • RAKsmart

    主机商介绍:RAKsmart是知名的美国服务器租用商,包括美国站群服务器、美国cn2服务器、香港服务器等热门产 […]

  • Vultr

    Vultr Global Cloud Hosting – Brilliantly Fast SSD […]

  • 爱卡汽车-中国主流汽车社区、汽车主题社区、汽车资讯、汽车论坛中心

    爱卡汽车网为您提供最新汽车报价、汽车图片、车型资料、汽车论坛、汽车资讯信息,XCAR-爱卡汽车网是中国领先的汽 […]

  • 新闻中心首页_新浪网

    新浪网新闻中心是新浪网最重要的频道之一,24小时滚动报道国内、国际及社会新闻。每日编发新闻数以万计。

  • 优酷 – 你的热爱 正在热播

    视频服务平台,提供视频播放,视频发布,视频搜索,视频分享

  • 观察者网

    观察者网,致力于荟萃中外思想者精华,鼓励青年学人探索,建中西文化交流平台,为崛起中的精英提供决策参考。

评论已关闭