Hallo!
Ich hab ein foreach-schleife, die einen Array mit unregelmäßigen keys durchläuft (d.h. for-schleife ist unmöglich). Allerdings will ich erst die Elemente ab einem key größer n verwerten. Wenn ich die davor verwerte schadet das auch nicht, kostet aber rechenzeit.
Jetzt die Frage: welcher Befehl ist schneller:
oder
Code:
if($i<$n) continue;
Da ich die Schleife im gesamten Skript viele Millionen male durchlaufe, erhoffe ich mir, damit einige Sekunden Rechenzeit rauszuholen. Wenn jemand einen Weg kennt, wie man eine foreach-Schleife erst bei einem bestimmten key anfangen lassen kann, darf mir den auch gerne schreiben, das wäre natürlich am effizientesten.
Viele Grüße,
Matse
p.S: Falls die Verwendung oder das komplette Skript interessiert, es soll ein Sieb des Eratosthenes werden:
Code:
<?php
$max = 999;
$numbers = array_fill(2,$max-1,true);
for ($i=2;$i<sqrt($max);$i++) {
foreach ($numbers as $k => $v) {
unset($numbers[$i*$k]);
if ($k > $max/$i) break;
}
}
print_r($numbers);
?>