Der Aufbau meines Arrays sah wie folgt aus:
'0' => true, '1' => true, '2' => true, '3' => true, '4' => true, '5' => true, '6' => true, '7' => true, '8' => true, '9' => true, '10' => true ) );
Es gab einmal den direkt Weg
foreach ($array[0] as $a_key => $a_val) { // somethin todo }
und einmal den Index 0 zwischenspeichern.
$_r = $array[0]; foreach ($_r as $a_key => $a_val) { // somethin todo }
Überraschenderweise war erster Weg der schnellere und in manchen Fällen fast doppelt so schnell.
Beide foreach Schleifen liefen jeweils 10.000 bis 100.000 mal durch.
Ergebnis 10.000x:
Dauer 1: 0.0490520000458 Sekunden
Dauer 2: 0.0724999904633 Sekunden
Ergebnis 100.000x:
Dauer 1: 0.49159693718 Sekunden
Dauer 2: 0.710182189941 Sekunden
Versteht mich nicht falsch, PHP Performance bringt nur was wenn auch die Datenbank steht. Größtes Problem bei datenbankgestützten Anwendungen ist die Datenbank selbst. Entweder die Verbindung zur Datenbank oder die Abfragen. Solche Performance Verbesserungen wie oben sind eher ein Tropfen auf dem heißen Stein.
Mein Testcode:
<?php $max = 100000; '0' => true, '1' => true, '2' => true, '3' => true, '4' => true, '5' => true, '6' => true, '7' => true, '8' => true, '9' => true, '10' => true ) ); test1(); test2(); function test1() { for ($i = 0; $i < $max; $i++) { // Testcode $_r = $array[0]; foreach ($_r as $a_key => $a_val) { // somethin todo } } } function test2() { for ($i = 0; $i < $max; $i++) { // Testcode foreach ($array[0] as $a_key => $a_val) { // somethin todo } } } ?>