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

$array[] = $value;

要么
array_push($array, $value);



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

最佳答案

没有基准,但我个人觉得$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的调用要快。有趣。

08-27 16:47