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

PHP中文网
發布: 2023-02-28 22:44:01
原創
1440 人瀏覽過

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個元素

$value壓入100000個元素

<?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;
}
?>
登入後複製

執行時間: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++){
    $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;
}
?>
登入後複製
執行時間:250.149012 ms

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

總結:

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

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


相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板