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

本文简要分析一下php中array_push与$arr[] = $value两种将元素加入数组末尾的方法的性能

1. array_push方法

array_push 方法,将一个或多个元素压入数组的末尾。array_push() 将array当成一个栈,并将传入的变量压入array的末尾。array的长度将根据入栈变量的数目增加。

int array_push ( array &$array , mixed $var [, mixed $... ] )
 
2. $arr[] = $value; 方法

给数组增加一个值,使用效果和array_push是相同的。


比较 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 ms\r\n", ($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 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效率高,因为不用重复获取文件尾的指针。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值