Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
PHP - Ripetere foreach
Forum - PHP - Ripetere foreach

Avatar
mirkos90 (Normal User)
Rookie


Messaggi: 42
Iscritto: 13/10/2007

Segnala al moderatore
Postato alle 10:35
Lunedì, 07/09/2009
Salve a tutti, è da un pò che non scrivo :-)
Ho un grande dilemma per un grande script:
Ho scritto uno script che esegue un foreach nel quale c'è un IF, esempio al volo:
<?
$file = file("lista.txt");
foreach($file as $linea){
   if(!$matches[1]){
        echo("Error!\n");
        exit;
    }else{
        echo("Ok");
    }
}
?>

Ora, quell'$matches[1], a volte può essere pieno e avvolte no (non ha un intervallo regolare...). Vorrei che, quando si avvera if(!$matches[1]) ricominciasse il foreach;
Ovviamente se ero sulla linea 11, deve ricominciare il foreach sulla linea 11...

SPERO DI ESSERMI CHIARITO :-| (anche se non credo... XD)

GRAZIE IN ANTICIPO, CIAO!

Ultima modifica effettuata da mirkos90 il 07/09/2009 alle 10:38
PM Quote
Avatar
Thejuster (Member)
Guru^2


Messaggi: 1704
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 11:36
Lunedì, 07/09/2009
Più o meno ho capito qualcosa lol.
Bhe direi che è abbastanza semplice come cosa.

Hai provato a farti un'altra variabile che ti conta la riga attuale? :)
ogni volta che legge una riga incrementa una variabile tipo

$lineattuale++

qundo viene interrotto il ciclo e vuoi riprenderlo da quella riga
basta riassegnare alla variabile linea = lineattuale

$linea = $lineattuale;

più o meno così

Codice sorgente - presumibilmente PHP

  1. <?
  2. $lineaAtt = 0;
  3. $linea;
  4.  
  5. $file = file("lista.txt");
  6. foreach($file as $linea){
  7.    if(!$matches[1]){
  8.         echo("Error!\n");
  9.         exit;
  10.     }else{
  11.         echo("Ok");
  12.     }
  13. $lineAtt++;
  14. }
  15.  
  16. //riresa ciclo
  17.  
  18. $linea = $lineAtt;
  19.  
  20. ?>



credo che dovrebbe funzionare

Ultima modifica effettuata da Thejuster il 07/09/2009 alle 11:38


PM Quote