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

Ergebnistabelle der Performance-Untersuchung zum Einfügen von Elementen in ein bestehendes Array

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

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Durch die weitere Nutzung der Seite stimmst du der Verwendung von Cookies zu. Weitere Informationen

Die Cookie-Einstellungen auf dieser Website sind auf "Cookies zulassen" eingestellt, um das beste Surferlebnis zu ermöglichen. Wenn du diese Website ohne Änderung der Cookie-Einstellungen verwendest oder auf "Akzeptieren" klickst, erklärst du sich damit einverstanden.

Schließen