一尘不染

在PHP中,最好使用$ array [] = $ value或array_push($ array,$ value)?

php

在PHP中最好使用附加数组成员的方法,

$array[] = $value;

要么

array_push($array, $value);

尽管手册说您最好避免进行函数调用,但我阅读$array[]的速度也比慢得多array_push()。有哪些澄清或基准?


阅读 262

收藏
2020-05-26

共1个答案

一尘不染

没有基准,但是我个人觉得看起来$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。有趣。

2020-05-26