kostenloser Webspace werbefrei: lima-city


continue bei ineinander verschachtelten Schleifen

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    y****e

    Hallo,

    eine weitere PHP Frage von mir:

    Ich habe 2 ineinander verschaltete foreach Schleifen. Bei der inneren Schleife werden mit if Vergleiche abgefragt, trifft einer zu, soll mit continue der Rest dieses Durchlaufes der ÄUßEREN Schleife übersprungen werden. Würde ich jetzt innerhalb der inneren Schleife im if Block allerdings continue; schreiben, würde nur die innere übersprungen - Was tun?

    Vielen Dank.
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Du könntest eine Variable vom Typ bool (true/false) verwenden.

    $exit = false;
    foreach ($array1 as $key1 => $value1)
    {
      foreach($array2 as $key2 => $value2)
      {
        if (bedingung)
        {
          $exit = true;
          continue;
        }
      }
      if ($exit)
      {
        continue;
      }
    }
  4. Autor dieses Themas

    y****e

    dustboy schrieb:
    Du könntest eine Variable vom Typ bool (true/false) verwenden.

    $exit = false;
    foreach ($array1 as $key1 => $value1)
    {
      foreach($array2 as $key2 => $value2)
      {
        if (bedingung)
        {
          $exit = true;
          continue;
        }
      }
      if ($exit)
      {
        continue;
      }
    }



    Das ist mir auch eingefallen, aber gibt es da keine bessere Lösung? Ich meine kann man dem nicht sagen, dass er die äußere Schleife continue'en soll?
  5. Falls du keine assoziativen Arrays verwendest und die $key variable nicht benötigst könntest du es auch so machen:

    $exit = false;
    for ($i = 0;isset($array1[$i]) && !$exit;$i++)
    {
      foreach($array2 as $key2 => $value2)
      {
        if (bedingung)
        {
          $exit = true;
          continue;
        }
      }
    }


    in dem fall müsstest du dann statt $value1 $array1[$i] verwenden
  6. vampiresilence

    Kostenloser Webspace von vampiresilence

    vampiresilence hat kostenlosen Webspace.

    Was dustboy schreibt würde funktionieren, aber
    break 2;

    ist wesentlich eleganter. ;)
    break gefolgt von einer Zahl, bezeichnet die Verschachtelungstiefe, deren Schleife abgebrochen werden soll.

    Liebe Grüße
    - VampireSilence
  7. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!