电脑技巧.图片新闻 | 用户注册 | 用户中心 | 发表文章 | 留言簿 | 扫一扫手机阅读
  |繁体中文|  RSS订阅 |极速版  |手机访问  
电脑常用技巧,PC Skill,电脑知识,组装维修,经验,资料精华宝库,HUGESKY CMS官网,鸿天全站,HUGESKY-php函数中 array_push 与 $arr[]=$value 的性能测试
本站申明:
本站尽量纯净无广告,提供交流学习类共享资料。[广告投放说明] [联系]
  • 首 页
  • 电脑知识
  • 应用技巧
  • 组装技巧
  • 维修技巧
  • 网络技巧
  • 组网通信
  • 办公技巧
  • 技巧视频
  • 编程技巧
  • 防毒技巧
  • 博客圈
会员注册关闭
帐号: 密码: 验证码: 点击显示验证码 记住
电脑技巧 -> 编程技巧 -> PHP技巧

php函数中 array_push 与 $arr[]=$value 的性能测试

作者:未知来源:网络收集 整理日期:2019-09-14
推荐指数: 点击:627   文字大小: 加入收藏夹


1.array_push方法

array_push 方法,将一个或多个元素压入数组的末尾。
int array_push ( array &$array , mixed $var [, mixed $... ] )
1

array_push() 将array当成一个栈,并将传入的变量压入array的末尾。array的长度将根据入栈变量的数目增加。 
与下效果相同:
<?php
$arr[] = $value;
?>
1
2
3


2.比较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倍。 

3.同时压入多个元素比较

使用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效率高,因为不用重复获取文件尾的指针。
 

获得更多 -> 编程技巧 -> PHP技巧
技术支持

责任编辑: webmaster >>> 百度上搜索  谷歌上搜索

hugesky
点击复制本连接 (http://www.hugesky.com/showarticle.php?id=6881)

发送到邮件  转换为打印版本  投 发表文章  报 侵权报告  关 关闭窗口
 js验证绕过文件上传漏洞js脚本
 卫星电话(satellite phone)是基于卫星通信系统来传输信息的通话器

>>> 相关资讯:

  • . smarty模版双重循环
  • . 几个实用的php技巧
  • . 取得目录下的文件并按时间排序
  • . 只给文章第一个关键词自动加链接
  • . PHP6安装方法
  • . Apache处理器的使用
  • . PHP测验,很基础的
  • . php中有$_request与$_post、$_get区别
  • . php自动生成静态化页面
  • . 给文章关键字自动加链接的PHP代码
【声明】:
以上文章或资料除注明为电脑技巧原创或编辑整理外,均为网络收集整理或网友推荐。以上内容以共享、参考、研究为目的,不存在任何商业目的。
未注明作者或出处的文章,可能资料来源不规范。如有涉及版权请给予及时联系更正或予以删除。
评论:(开放)

  网友评论: 评  
以下网友评论只代表网友个人观点,不代表本站观点
  发表评论:(匿名用户不能发表评论! 注册 登陆)
昵称: 验证码:
评分:
5 4 3 2 1
内容:
  请文明参与讨论,禁止漫骂攻击。
 
·用户发表意见仅代表其个人意见,并且承担一切因发表内容引起的纠纷和责任.
·本站管理人员有权在不通知用户的情况下删除不符合规定的评论信息或留做证据.
·请客观的评价您所看到的资讯,提倡就事论事,杜绝漫骂和人身攻击等不文明行为.
内容搜索
    • 站内搜索
热门资讯
  • 电脑快捷键全都在这了!电脑技巧...
  • 图说最常用的10个电脑技巧
  • 别说你不会?这9个电脑技巧你必须...
  • Win7解决C盘占用空间大的方法
  • 网银密码设置小技巧
  • win7安装AHCI驱动
  • 平板电脑选购六大要点
  • [推荐]五步搞定电脑网络安全 五步...
  • 系统自带的最不起眼但又是最强的...
  • 上班族必懂的电脑技能技巧
推荐信息
开启模板:NEWSKY -关于版权 - 隐私保护 - 联系我们 - 网站地图 - 会员列表 - 加入收藏 - 返回顶部

我问佛:如何才能如你般睿智? 佛曰:佛是过来人,人是未来佛。
部分资源收集于互联网并遵循 署名-非商业性使用-相同方式共享3.0共享,尽量署名原创。
据《信息网络传播权保护条例》 如侵犯您的权利,请联系webmaster(at)hugesky.com删除。
Power By HugeSky.Com

Copyright© www.hugesky.com
Powered by HUGESKY CMS 7.1.1.1080918 professional licensed