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.
Kies-Media
Schreibe einen Kommentar