PHP-Performance: Element in Array Einfügen
In PHP gibt es einige Möglichkeiten um ein Array um ein Element zu erweitern. Doch welche dieser Variante ist die schnellste?
Variante 1: Array_Push
$a=array(); array_push($a,'1');
Variante 2: $a[]
$a=array(); $a[]='1';
Variante 3: array_unshift
Bemerkung: das neue Element wird im Array an erster Stelle eingefügt, also nicht wie in den anderen Varianten angehängt.
$a=array(); array_unshift($a,'1');
Benchmark
Hier mein Benchmark-Script: Script
$zahl=5000; // Anzahl der Durchläufe //=========================== $t=microtime(true); $a=array(); for ($x=0;$x<$zahl;$x++) { array_push($a,$x); } echo 'Array_Push: '.(microtime(true)-$t).' '; flush(); $t=microtime(true); $a=array(); for ($x=0;$x<$zahl;$x++) { $a[]=$x; } echo '$a[] :'.(microtime(true)-$t).' '; flush(); $t=microtime(true); $a=array(); for ($x=0;$x<$zahl;$x++) { array_unshift($a,$x); } echo 'array_unshift '.(microtime(true)-$t).' '; flush();
Ergebnis
Variante | Dauer in s |
---|---|
$a[] | 0.0279 |
ARRAY_PUSH | 0.038 |
Array_unshift | 35.427 |
Fazit
Wie man sieht sind die Unterschiede gewaltig!!! In Tests mit sehr vielen eingefügten Elementen ist $a[] durchschnittlich etwa 40% schneller als Array_Push. Über Array_unshift brauchen wir glaub ich nicht zu reden, wenn es um das Einfügen von Elementen geht.
Schreibe einen Kommentar