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.
Der Effekt ist derselbe wie folgt:
<?php $arr[] = $value; ?>
2. Vergleichen Sie die Leistung von array_push und $arr[]=$value
Verwenden array_push zum Pushen von 1000000 Elementen
<?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(' ', microtime()); return (float)$usec + (float)$sec; } ?>
Ausführungszeit: 2735,545158 ms
Verwenden Sie $arr[] = $value zum Pushen von 100000 Elementen
<?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(' ', microtime()); return (float)$usec + (float)$sec; } ?>
Ausführungszeit: 417,458057 ms
Ergebnis: Das Pushen jeweils eines Elements mit $arr[]=$value ist siebenmal schneller als mit 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(' ', microtime()); return (float)$usec + (float)$sec; }
Ausführungszeit: 250,149012 ms
Ergebnis: Die Verwendung von array_push zum gleichzeitigen Pushen mehrerer Elemente ist schneller als die mehrfache Verwendung von $arr[]=$value. 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 werden kann.
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.