在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 '
'; $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
.有趣.
array_push()的主要用途是可以将多个值推送到数组的末尾.
它在文档中说:
如果使用array_push()向数组添加一个元素,最好使用$ array [] =因为这样就没有调用函数的开销.
从PHP文档array_push
:
注意:如果使用array_push()向数组添加一个元素,最好使用$ array [] =因为这样就没有调用函数的开销.
街上的字是[]更快,因为函数调用没有开销.另外,没有人真正喜欢PHP的数组函数......
"它是干草堆,针......还是它是针干草堆......啊,f***它...... [] ="
一个区别是您可以使用两个以上的参数调用array_push(),即您可以一次将多个元素推送到数组.
$myArray = array(); array_push($myArray, 1,2,3,4); echo join(',', $myArray);
版画 1,2,3,4