Wilfried Weinheim: Schleifen

Was ist schneller? Was am sinnvollsten (von Sonderfällen abgesehen, wo man auch mal in der Reihenfolge zurückgehen will, wozu sich die Arbeit mit key, current, next usw. anbietet)? Am einfachsten zu handhaben finde ich foreach.

$array = array(1, 2, 3, 4, 5);

1. $len = count($array);
   for ($i=0; $i<$len; $i++)
2. foreach ($array as $element)
3. $len = count($array);
   while($i<$len)
4. while(list($key, $element) = each($array)
5. do {
   $element = current($array);
   } while(next($array))

  1. Hi!

    Was ist schneller? Was am sinnvollsten (von Sonderfällen abgesehen, wo man auch mal in der Reihenfolge zurückgehen will, wozu sich die Arbeit mit key, current, next usw. anbietet)?

    Benchmarks:
    for(), foreach(), while() für große Arrays?
    for(), foreach(), while() für kleine Arrays?

    Auf der Site sind aber auch noch ein paar andere interessante Benchmarks zu finden.

    Ansonsten wäre für dich sicherlich noch interessant:
    Wie kann ich die Performance zweier Befehle vergleichen? (FAQ der Newsgroups de.comp.lang.php.*)

    Schöner Gruß,
    rob

    1. Vielen Dank, sowas hatte ich gesucht. So in etwa hatte ich die Laufzeiten schon vermutet. Überrascht war ich vom Benchmark des Pre-Inkrementes, das zum Teil schneller als Post-Inkrement ist. Ich hätte es eher andersherum vermutet.

      1. gudn tach!

        Überrascht war ich vom Benchmark des Pre-Inkrementes, das zum Teil schneller als Post-Inkrement ist. Ich hätte es eher andersherum vermutet.

        aus welchem grund?

        ich waere verwundert, wenn es andersherum waere. deswegen.

        prost
        seth