Heim  >  Artikel  >  Backend-Entwicklung  >  Leistungsvergleich zwischen PHP array_push und $arr[]=$value

Leistungsvergleich zwischen PHP array_push und $arr[]=$value

jacklove
jackloveOriginal
2018-06-09 10:27:391750Durchsuche

1. array_push-Methode

array_push-Methode schiebt ein oder mehrere Elemente an das Ende des Arrays.

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

array_push() behandelt das Array als Stapel und schiebt die übergebenen Variablen an das Ende des Arrays. Die Länge des Arrays erhöht sich entsprechend der Anzahl der auf den Stapel verschobenen Variablen.
Derselbe Effekt wie der folgende:

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

2. Vergleichen Sie die Leistung von array_push und $arr[]=$value

Verwenden Sie array_push, um 1.000.000 zu pushen Elemente

<?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;
}?>

Ausführungszeit: 2735,545158 ms

Push 100000 Elemente mit $arr[] = $value

<?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;
}?>

Ausführungszeit: 417,458057 ms

Ergebnis: Drücken Sie jeweils ein Element, verwenden Sie $arr [ ]=$value ist 7 mal schneller als die Verwendung der Methode array_push.

3. Mehrere Elemente gleichzeitig zum Vergleich verschieben

Verwenden Sie die array_push-Methode, um 100.000 Elemente zu übertragen, jeweils 50 Elemente

<?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;
}?>

Ausführungszeit: 250,149012 ms

Ergebnis: Verwenden Sie array_push, um mehrere Elemente gleichzeitig zu pushen, was besser ist als mehrere mal Verwenden Sie $arr[]=$value, um schnell zu pushen. Je mehr Elemente array_push gleichzeitig einfügt, desto effizienter ist es.

Zusammenfassung:

Wenn Sie ein Element pushen, ist die Verwendung von $arr[]=$value effizient, da dadurch die zusätzliche Belastung durch das Aufrufen von Funktionen eingespart wird.
Wenn mehrere Elemente gleichzeitig gepusht werden, ist die Verwendung von array_push effizienter, da nicht wiederholt der Zeiger auf das Ende der Datei abgerufen werden muss.

Ergebnis: Das Pushen jeweils eines Elements mit $arr[]=$value ist schneller als mit der Methode array_push 7 mal.

In diesem Artikel wird der Leistungsvergleich zwischen php array_push und $arr[]=$value erläutert. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website.

Verwandte Empfehlungen:

Anleitung zur Verwendung der MySQL-Zeitstempelformatierungsfunktion from_unixtime

Anleitung zur Verwendung der MySQL-Funktionen concat und group_concat

Erklärung zum Umgang mit MySQL-Innodb-Startfehlern und nicht möglichem Neustart

Das obige ist der detaillierte Inhalt vonLeistungsvergleich zwischen PHP array_push und $arr[]=$value. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn