在php中數組賦值的時候用array[]這種方法效率會較高於array_push(),於是乎各種緣由就有了下面的測試
測試代碼:
1 <?php
2 /**
3 *數組性能測試
4 *for循環有性能影響所以沒有用
5 *測試是更改$count參數(從10~100000 整取遞增)和調用方法手動刷新,記錄時間為平均大概時間
6 **/
7
8 $count = 10;
9
10 arrayTest01($count);
11
12 function arrayTest01($count){
13 $arr = array();
14 $time = microtime(true);
15 for($i = 0; $i < $count; $i++){
16 $array[] = $i;
17 }
18 echo (microtime(true) - $time);
19 }
20
21 function arrayTest02($count){
22 $arr = array();
23 $time = microtime(true);
24 for($i = 0; $i < $count; $i++){
25 array_push($arr, $i);
26 }
27 echo (microtime(true) - $time);
28 }
29
30 ?>
效率大概是array[]快將近一倍,測試環境是ubuntu 11 和 windows 7
windows php-5.2.17/ Apache2.2
times($count) 10 100 1000
10000 100000 1000000
array[] 2.31E-05 0.000104
0.000867 0.008417 0.043666
0.288323
array_push 2.79E-05
0.000181 0.001614 0.014447
0.055875 0.491052
ubuntu11.04 PHP 5.3.6/apache2.2
array[] 1.91E-05 7.70E-05
0.000726 0.007669 0.040492 報錯
array_push 2.50E-05
1.26E-04 0.001149 0.013714
0.056978 報錯
這是官方網站上的說辭
Note: 如果用 array_push() 來給數組增加一個單元,還不如用 $array[] = ,因為這樣沒有調用函數的額外負擔。
官網鏈接:
http://cn.php.net/array_push