[PHP] Przerwanie wykonywania dwóch pętli

W dużym uproszczeniu mój kod wygląda tak:

while (!feof($plik)) {

  (...)

  for ($i=1; $i<7; $i++) {

    (...)

    If ($c == $d) {

      ???

    }

    (...)

  }

}

Czy jest jakaś możliwość żeby przerwać wykonywanie pętli for i while gdy jest spełniony warunek w ifie?

Gdy wrzucę break; to php opuści tylko fora a dalej jedzie z while…

Mógłby ktoś pomóc?

while (!feof($plik)) {

  (...)

  for ($i=1; $i<7; $i++) {

    (...)

    If ($c == $d) {

     break 2;

    }

    (...)

  }

}

nie testowałem więc nie jestem pewien…

Po więcej informacji: break z opcjonalnym (domyślnie ma wartość 1) parametrem - (int) liczbą reprezentującą ilość pętli for, foreach, while, do-while lub instrukcji switch do zatrzymania. Oczywiście ilość petli i/lub instrukcji switch w których ów break jest zawarty.

---- [EDIT] ----

Nie ten dział? To powinno trafić do webmastering.

Albo dodatkowa zmienna:

$czy = 0;

while (!feof($plik)) {

  (...)

  for ($i=1; $i<7; $i++) {

    (...)

    If ($c == $d) {

     break;

     $czy = 1;

    }

    if ($czy == 1) {break;};

    (...)

  }

}

rozwalkompa , to co piszesz jest zupełnie bez sensu. po pierwsze, przypisujesz zmiennej wartość już po break, po drugie zupełnie niepotrzebnie mnożysz zmienne, po trzecie, drugiego breake też wstawiłeś w for zamiast w while…

Przepraszam, za szybko chciałem. Poza tym napisałem tylko, że jest jeszcze taka możliwość.

Powinno być tak:

$czy = 0;

while (!feof($plik)) {

  (...)

  for ($i=1; $i<7; $i++) {

    (...)

    If ($c == $d) {

     $czy = 1;

     break;

    }

    (...)

  }

 if ($czy == 1) {break;};

}

EDIT: Żeby nie mnożyć niepotrzebnie postów: Ale działa :smiley:

co nie zmienia faktu, że rozwiązanie to nadal nie ma zbytniego sensu. po co mnożyć niepotrzebnie zmienne? jak już chcesz sobie utrudniać życie, to przed drugim break sprawdź if($c == $d)