为了账号安全,请及时绑定邮箱和手机立即绑定

在PHP中最好使用$ array [] = $ value或array_push

在PHP中最好使用$ array [] = $ value或array_push

慕桂英4014372 2019-12-25 15:36:02
在PHP中最好使用追加数组成员的方法:$array[] = $value;要么array_push($array, $value);尽管手册说您最好避免进行函数调用,但我阅读$array[]的速度也比慢得多array_push()。有没有人有任何澄清或基准?
查看完整描述

3 回答

?
繁星coding

TA贡献1797条经验 获得超4个赞

没有基准,但是我个人感觉看起来$array[]更干净一些,并且诚实地在几毫秒内拆分头发是无关紧要的,除非您计划在数组中添加成千上万个字符串。


编辑:运行此代码:


$t = microtime(true);

$array = array();

for($i = 0; $i < 10000; $i++) {

    $array[] = $i;

}

print microtime(true) - $t;

print '<br>';

$t = microtime(true);

$array = array();

for($i = 0; $i < 10000; $i++) {

    array_push($array, $i);

}

print microtime(true) - $t;

第一种方法使用的$array[]速度比第二种方法快50%。


一些基准测试结果:

Run 1

0.0054171085357666 // array_push

0.0028800964355469 // array[]


Run 2

0.0054559707641602 // array_push

0.002892017364502 // array[]


Run 3

0.0055501461029053 // array_push

0.0028610229492188 // array[]

这并不奇怪,因为PHP手册指出了这一点:


如果使用array_push()将一个元素添加到数组中,则最好使用$ array [] =,因为这样就不会产生调用函数的开销。


它的用词方式如果array_push添加多个值更有效,我也不会感到惊讶。编辑:出于好奇,进行了一些进一步的测试,即使添加了大量内容,单个$array[]通话也比一个通话快array_push。有趣。


查看完整回答
反对 回复 2019-12-25
?
慕仙森

TA贡献1827条经验 获得超7个赞

array_push()的主要用途是可以将多个值压入数组的末尾。


它在文档中说:


如果使用array_push()将一个元素添加到数组中,则最好使用$ array [] =,因为这样就不会产生调用函数的开销。


查看完整回答
反对 回复 2019-12-25
?
千巷猫影

TA贡献1829条经验 获得超7个赞

一个区别是,您可以使用两个以上的参数来调用array_push(),即您可以一次将一个以上的元素推入数组。


$myArray = array();

array_push($myArray, 1,2,3,4);

echo join(',', $myArray);

版画 1,2,3,4


查看完整回答
反对 回复 2019-12-25
  • 3 回答
  • 0 关注
  • 1049 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信