首頁  >  文章  >  後端開發  >  php array_push 與 $arr[]=$value 之間的效能對比

php array_push 與 $arr[]=$value 之間的效能對比

jacklove
jacklove原創
2018-06-09 10:27:391772瀏覽

1.array_push方法

array_push 方法,將一個或多個元素壓入陣列的末端。

int array_push ( array &$array , mixed $var [, mixed $... ] )

array_push() 將array當成堆疊,並將傳入的變數壓入array的末端。 array的長度將根據入棧變數的數目增加。
與下效果相同:

<?php$arr[] = $value;?>

2.比較array_push與$arr[]=$value效能

##使用array_push壓入1000000個元素

<?php$starttime = get_microtime();$arr = array();for($i=0; $i<1000000; $i++){
    array_push($arr, $i);
}$endtime = get_microtime();
printf("run time %f ms\r\n", ($endtime-$starttime)*1000);function get_microtime(){
    list($usec, $sec) = explode(&#39; &#39;, microtime());    return (float)$usec + (float)$sec;
}?>

執行時間:2735.545158 ms

使用$arr[] = $value壓入100000個元素

<?php$starttime = get_microtime();$arr = array();for($i=0; $i<1000000; $i++){    $arr[] = $i;
}$endtime = get_microtime();
printf("run time %f ms\r\n", ($endtime-$starttime)*1000);function get_microtime(){
    list($usec, $sec) = explode(&#39; &#39;, microtime());    return (float)$usec + (float)$sec;
}?>

執行時間:417.458057 ms

結果:每次都壓入一個元素,使用$arr []=$value比使用array_push方法快7倍。

3.同時壓入多個元素比較

使用array_push方法,壓入100000個元素,每次壓入50個元素

<?php$starttime = get_microtime();$arr = array();for($i=0; $i<1000000; $i=$i+50){
    array_push($arr, $i,$i+1,$i+2,$i+3,$i+4,$i+5,$i+6,$i+7,$i+8,$i+9,$i+10,        $i+11,$i+12,$i+13,$i+14,$i+15,$i+16,$i+17,$i+18,$i+19,        $i+21,$i+22,$i+23,$i+24,$i+25,$i+26,$i+27,$i+28,$i+29,        $i+31,$i+32,$i+33,$i+34,$i+35,$i+36,$i+37,$i+38,$i+39,        $i+41,$i+42,$i+43,$i+44,$i+45,$i+46,$i+47,$i+48,$i+49);
}$endtime = get_microtime();
printf("run time %f ms\r\n", ($endtime-$starttime)*1000);function get_microtime(){
    list($usec, $sec) = explode(&#39; &#39;, microtime());    return (float)$usec + (float)$sec;
}?>

執行時間:250.149012 ms

結果:使用array_push一次壓入多個元素,比多次使用$arr[]=$value壓入快。 array_push一次壓入的元素越多,則效率越高。

總結

如果是壓入一個元素,使用$arr[]=$value效率高,因為可以節省呼叫函數的額外負擔。

如果同時壓入多個元素,使用array_push效率高,因為不用重複取得檔案尾的指標。

結果:每次都壓入一個元素,使用$arr[]=$value比使用array_push方法快7倍。

本文說明了php array_push 與 $arr[]=$value 之間的效能對比,更多相關內容請關注php中文網。

相關推薦:

關於mysql 時間戳格式化函數from_unixtime的使用說明

關於mysql函數concat與group_concat使用說明事項

關於mysql innodb啟動失敗無法重新啟動的處理方法講解

以上是php array_push 與 $arr[]=$value 之間的效能對比的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn