Cicli in PHP. PHP foreach loop: due modi di usarlo Php doppio conteggio in un ciclo

È improbabile che tu possa scrivere uno script serio in PHP senza utilizzare i loop. Cos'è un ciclo? Questo è un tipo speciale di struttura di controllo che consente di eseguire ripetutamente (e anche all'infinito) lo stesso codice. In PHP sono supportati i seguenti cicli:

I primi tre cicli sono quelli che molto probabilmente vedrai nella maggior parte dei linguaggi di programmazione. I cicli, a seconda delle condizioni, possono essere interrotti o continuati (procedere all'iterazione successiva senza eseguire il corpo del ciclo). Diamo uno sguardo più da vicino a ciascuno dei cicli.

per ciclo

La sintassi del ciclo for è la seguente.

For(inizializzazione; condizione; comandi_dopo_iterazione) (loop_body; )

Il blocco di inizializzazione inizializza sempre il contatore, così come altre variabili (se necessario). Il blocco condizione specifica a che punto il ciclo dovrebbe interrompere l'esecuzione. Nel blocco di comandi eseguiti dopo ogni iterazione del ciclo, solitamente cambia il valore del contatore, così come altre variabili (se necessario).

// Matrice di valori $array = array("Mela", "Patata", "Anguria", "Fiore", "Acqua", "Mercurio", "Ossigeno", "Grano", "Russia", "Mosca" ", " Doccia"); // La condizione del ciclo suona così: finché il contatore non raggiunge un valore uguale al numero // degli elementi dell'array, viene eseguito il corpo del ciclo for($i = 0; $i< count($array); $i++) { print "
".($i + 1)". ".$array[$i]."; ) /* Il risultato del ciclo sarà il seguente: 1. Mela 2. Patate 3. Anguria 4. Fiore 5. Acqua. Ossigeno. 8. Grano. 9. Russia. 10. Mosca.

Dato che il contatore $i partiva da zero, ad ogni iterazione abbiamo aggiunto uno al suo valore per rendere l'elenco più familiare. Dopo ogni iterazione, il valore del contatore veniva incrementato di uno e quando raggiungeva 11, il ciclo si interrompeva. Ora diamo un'occhiata al ciclo do- while.

ciclo "fai-mentre".

Il ciclo do- while è diverso in quanto opera su una postcondizione. Ciò significa che il codice contenuto nel corpo del ciclo verrà eseguito almeno una volta. La sintassi del ciclo è:

Do (loop_body; ) while(condizione);

Questo ciclo viene utilizzato abbastanza raramente nella programmazione web, ma potrebbe essere necessario nei tuoi script.

// Array già familiare a noi $array = array("Mela", "Patata", "Anguria", "Fiore", "Acqua", "Mercurio", "Ossigeno", "Grano", "Russia", "Mosca" " , "Piovere"); // Inizia il ciclo $i = 1; fare(stampa"
".$i.". ".$array[($i - 1)]."; ) mentre($i++< count($array)); /* Результат работы цикла будет таким: 1. Яблоко. 2. Картошка. 3. Арбуз. 4. Цветок. 5. Вода. 6. Ртуть. 7. Кислород. 8. Пшеница. 9. Россия. 10. Москва. 11. Ливень. */

Nota la differenza tra ciò che stampiamo in questo ciclo e il ciclo for. Poiché il codice nel corpo del ciclo do- while viene eseguito almeno una volta, il valore iniziale del contatore è stato impostato su zero. Come funziona un ciclo... il codice viene eseguito, quindi viene testata una condizione. Alla prima iterazione, il contatore aveva valore 1. Dopo l'iterazione, uno risultava inferiore a 11 (il numero di elementi). All'ultima iterazione, il contatore aveva un valore di 11, che non è in alcun modo inferiore a 11. Il ciclo si è interrotto. Il ciclo while è molto simile al ciclo while.

ciclo while

Il ciclo while è precondizionato. Verrà eseguito solo quando la sua condizione è vera. Cioè, il ciclo while potrebbe non essere eseguito affatto. La sua sintassi è:

While(condizione) (loop_body; )

Insieme al ciclo for, molto spesso viene utilizzato il ciclo while.

$array = array("Mela", "Patata", "Anguria", "Fiore", "Acqua", "Mercurio", "Ossigeno", "Grano", "Russia", "Mosca", "Pioggia"); $i = 1; mentre($i++<= count($array)) { print "
".$i.". ".$array[($i - 1).]."."; ) /* Il risultato del ciclo sarà il seguente: 1. Mela. 2. Patata. 3. Anguria. 4. Fiore. 5. Acqua. 6. Mercurio. 7. Ossigeno. 8. Grano.

Il ciclo while è il più semplice e comprensibile per gli sviluppatori principianti.

per ciascun ciclo

Il ciclo foreach non è come tutto quanto sopra. È apparso in PHP4 ed è progettato per scorrere gli array. Lo sviluppatore non ha bisogno di inventare nulla per questo. Tutto è facile e semplice:

/** * Il ciclo foreach deve essere inteso come "for ciascuno di". * L'array elaborato dal ciclo viene passato a una variabile che è * accessibile solo all'interno del corpo del ciclo. Se lo desideri, puoi anche accedere alle chiavi dell'array *. */ foreach(array as array_element) (loop_body; ) foreach(array as array_key => array_element) (loop_body; )

Il principio del ciclo foreach è completamente diverso da quello dei cicli for , while e do- while . Pertanto, è abbastanza difficile per gli sviluppatori inesperti capire cosa si può (e anche si dovrebbe) fare esattamente con esso.

// Cambiamo l'array che già conosciamo. Rendiamolo associativo. $array = array("Mela" => "frutto", "Patata" => "verdura", "Anguria" => "bacca", "Fiore" => "pianta", "Acqua" => "liquido", “Mercurio” => “metallo”, “Ossigeno” => “gas”, “Grano” => “pane”, “Russia” => “la nostra Patria”, “Mosca” => “la capitale della nostra Patria”, “Pioggia " => "popados"); $i = 1; // Possiamo farlo foreach($array as $v) ( print "
".$i.". ".$v."."; $i++; ) /* Otteniamo questo risultato inaspettato: 1. frutto. 2. verdura. 3. bacca. 4. pianta. 5. liquido. 6. metallo. 7. gas. 8 . pane. 9. la nostra Patria. 10. capitale della nostra Patria */ // Ora facciamolo diversamente foreach($array as $k => $v) ( print ".
".$i.". ".$k." è ".$v."; $i++; ) /* Ora il risultato sarà così 1. Una mela è un frutto 2. Una patata è una verdura 3. Un'anguria è una bacca una pianta 5. L'acqua è un liquido 6. Il mercurio è un metallo 7. L'ossigeno è un gas 9. La Russia è la nostra patria 10. Mosca è la capitale della nostra patria.

Capisci come funziona questo ciclo? In caso contrario, puoi porre una domanda nei commenti al materiale.

Puoi utilizzare i costrutti in qualsiasi ciclo rottura O Continua. A volte non ha senso continuare il ciclo oppure è necessario passare all'iterazione successiva.

$array = array("Mela" => "frutto", "Patata" => "verdura", "Anguria" => "bacca", "Fiore" => "pianta", "Acqua" => "liquido", “Mercurio” => “metallo”, “Ossigeno” => “gas”, “Grano” => “pane”, “Russia” => “la nostra Patria”, “Mosca” => “la capitale della nostra Patria”, “Pioggia " => "popados"); $i = 1; // Un esempio di come funziona un ciclo con il costrutto continue foreach($array as $k => $v) ( if($k != "Oxygen") continue; print "
".$i.". ".$k." è ".$v."; $i++; ) /* Il risultato sarà così 1. L'ossigeno è un gas */ $i = 1 // Un esempio di come funziona un ciclo con la costruzione break($ array as $k = > $v) ( if($k == "Ossigeno") break; print "
".$i.". ".$k." è ".$v."; $i++; ) /* Il risultato sarà 1. Una mela è un frutto 2. Una patata è una verdura 3. Un'anguria è una bacca. 5. L'acqua è un liquido 6. Il mercurio è un metallo.

La nota:È attivata la versione adattativa del sito, che si adatta automaticamente alle dimensioni ridotte del tuo browser e nasconde alcuni dettagli del sito per facilitare la lettura. Buona visione!

Ciao cari lettori e abbonati abituali! È ora di continuare la serie di articoli su PHP e oggi studieremo una cosa così basilare e allo stesso tempo molto importante come i loop. Qual è la prima cosa che devi sapere sui cicli? E il fatto che siano utilizzati ovunque e i modelli per Joomla, VirtueMart, Wordpress, OpenCart e qualsiasi altro CMS non fanno eccezione.

Cos'è un ciclo? Cicloè la ripetizione ripetuta dello stesso pezzo di codice. Quante ripetizioni devono essere eseguite dipende dal contatore dei cicli, che noi stessi creiamo e possiamo controllare. Questo è molto comodo, ad esempio, quando dobbiamo visualizzare i prodotti in una categoria del negozio online, visualizzare i post del blog, visualizzare i commenti su un articolo o un prodotto, anche tutti i menu nei CMS (motori del sito Web) vengono realizzati utilizzando i cicli; In generale, i loop vengono utilizzati molto spesso.

Ma prima di passare ai loop stessi, devi prima capire qualcosa come gli operatori incremento E decremento.

L'operatore ++ (incremento) aumenta il valore di una variabile di uno, mentre l'operatore -- (decremento) diminuisce il valore di una variabile di uno. Sono molto comodi da utilizzare nei loop come contatore e nella programmazione in generale. Esistono anche incremento/decremento PRE e incremento/decremento POST:

PRE incremento/decremento ++$a Incrementa $a di uno e restituisce il valore di $a. --$a Decrementa $a di uno e restituisce il valore di $a. Incremento/decremento POST $a++ Restituisce il valore di $ae quindi incrementa $a di uno. $a-- Restituisce il valore di $ae poi decrementa $a di uno.

Per esempio:

$a = 1; echo "Numero di uscita: " . $a++; // Emetti il ​​numero: 1 echo "Emetti il ​​numero: " . $a; // Emetti il ​​numero: 2 echo "Emetti il ​​numero: $a"; $a += 1; // come nella prima riga$a = 1; echo "Numero di uscita: " . +$a; // Emetti il ​​numero: 2 echo "Emetti il ​​numero: " . $a; // Emette il numero: 2 $a += 1; echo "Numero dell'output: $a"; // lo stesso della prima riga di questo blocco

per ciclo

for (parte A; parte B; parte C)( // Qualsiasi codice, quante righe vuoi; )

Il ciclo for è composto da 3 parti e dal corpo stesso. Parte A fa semplicemente quello che dice, solitamente nel 90% dei casi crea un contatore di loop. Parte B- questo ci è, grosso modo, già familiare Se, cioè verificare la verità (vero?). Se la condizione è vera, ovviamente VERO, quindi PHP entra nel ciclo e continua ad eseguirlo. Parte C- lo stesso della parte A, di regola, nella parte C eseguiamo una sorta di trasformazione con il contatore. Per esempio:

"; ) echo "USCITO DAL LOOP e proseguito nel codice..."; ?>

Ora parliamo dell'algoritmo del ciclo for. La prima cosa che PHP vede è andare alla parte A e eseguirla solo una volta (vedi immagine sotto). Successivamente, PHP va alla parte B e controlla se è vero o falso. Se è vero, allora esegue il corpo del ciclo e solo dopo passa alla parte C. Successivamente PHP va di nuovo alla parte B e controlla se lì è ancora vero o no. In caso contrario, il ciclo termina, in caso affermativo, continua finché la parte B non contiene false.

Il risultato dell'esempio precedente:

Mentre Ciclo

while (parte B)( // Qualsiasi codice, quante righe vuoi; )

Come puoi vedere, non c'è una parte A e una parte C, del ciclo for rimane solo una condizione, cioè la parte B. Se dobbiamo utilizzare un contatore, allora dobbiamo posizionarlo all'interno del ciclo while, tra il resto del codice sarà la parte C. È necessario creare il contatore prima dell'inizio del costrutto while:

Parte A; while (parte B)( // Qualsiasi codice, tutte le righe desiderate; Parte C; )

Convertiamo il precedente ciclo for in un ciclo while:

"; $i++; ) echo "USCITO DAL LOOP e proseguito nel codice..."; ?>

Il risultato sarà esattamente lo stesso. Cosa usare: un ciclo for o un ciclo while è una questione di gusti, vedi cosa è più conveniente e logico per te, non c'è differenza.

Esegui... il ciclo while

Meno comune di tutti i tipi di ciclo. Essenzialmente questo è un while invertito. Il suo trucco è che PHP entrerà sicuramente nel corpo del ciclo do... while almeno una volta (la prima volta), perché in questo ciclo c'è una condizione alla fine:

Parte A; do( // Qualsiasi codice, quante righe vuoi; Parte C; )mentre(Parte B);

"; $i++; )mentre($i< 8); echo "ВЫШЛИ ИЗ ЦИКЛА и пошли дальше по коду..."; ?>

È importante capire: in tutti e tre i tipi di cicli non ci sono parti obbligatorie.

Un esempio di ciclo for senza parte A e parte C:

For(;$i > 8;)( // il tuo codice)

Un esempio di ciclo for senza tutte e tre le parti:

For(;;)( // classico ciclo infinito)

Cioè, tutti i punti e virgola rimangono ancora nel ciclo for, questa è la sintassi!

Cicli infiniti

Un ciclo infinito è un errore dello sviluppatore in cui la pagina non potrà mai essere caricata fino alla fine, poiché la condizione del ciclo (parte B) sarà sempre vera. Per esempio:

"; $i++; ) while($i != 0); echo "USCITO DAL LOOP e proseguito nel codice..."; ?>

Risultato:

Ne ho mostrato solo una parte perché non entra tutto sullo schermo. È così che il tuo browser e il server del tuo sito soffriranno all'infinito finché il browser non si bloccherà dopo 30 secondi. E tutto perché nell'esempio sopra la variabile $i non sarà mai uguale a zero, inizialmente è uguale a 1 ed è costantemente. crescente.

Cioè, lo sviluppatore è stato disattento quando ha inventato una condizione del genere.

Gestione del ciclo

Pausa dell'operatore. Ci sono situazioni in cui non abbiamo bisogno del ciclo per eseguire tutte le iterazioni (ripetizioni). Ad esempio, ad un certo punto vogliamo interromperlo e continuare l'esecuzione con il codice seguente:

"; if ($i === 5) break; // esce dal ciclo se $i è uguale a 5 $i++; ) echo "So contare solo fino a 5:("; ?>

Risultato:

Nell’esempio sopra, non appena abbiamo raggiunto il numero cinque, PHP è uscito dal ciclo, altrimenti avrebbe contato fino a 7.

Continua operatore interrompe anche l'esecuzione del ciclo, ma a differenza di break, continue non esce dal ciclo, ma riporta l'interprete PHP alla condizione (alla parte B). Esempio:

"; ) echo "Mi sono perso qualcosa?"; ?>

Risultato:

Abbiamo mancato il numero 5 perché PHP non ha avuto l'eco.

Un ciclo può essere nidificato all'interno di un ciclo. In questo caso, le istruzioni continue e break si applicano solo ad un ciclo, quello in cui si trovano. Cioè, in altre parole, si trasferiscono a un livello e non a tutti. Esempio:

Ma noi stessi possiamo scegliere quanti livelli superare:

"; $i++; $i=1; $k=1; mentre ($k< 8) { echo "Итерация $k номер ". $k . "
"; if ($k === 5) break 2; $k++; ) ) ?>

Risultato:

Naturalmente non possiamo impostare un numero maggiore del numero di cicli nidificati di cui disponiamo.

per ciascun ciclo

Ultimo in ordine, ma più importante per importanza, è il ciclo foreach. Usato soltanto per l’enumerazione e gli oggetti (è troppo presto per insegnarli). Sintassi di esempio:

"; } ?>

Risultato:

Questo era un costrutto foreach breve, ma ha anche una versione estesa che, oltre ai valori delle celle dell'array, mostra anche i nomi delle celle (chiavi):

$valore) (echo "Nella sezione " . $chiave . " c'è un articolo che si chiama: ". $valore."
"; } ?>

Risultato:

Attiro la tua attenzione sul fatto che possiamo chiamare le variabili come vogliamo, anche $key e $value, anche $xxx e $yyy.

Se si tratta di un array, utilizziamo solo il ciclo foreach e nessun altro. È questo ciclo che viene utilizzato in tutto VirtueMart, e in effetti ovunque.

Ultimo aggiornamento: 1/11/2015

Per eseguire azioni ripetibili in PHP, come in altri linguaggi di programmazione, vengono utilizzati i loop. PHP ha i seguenti tipi di loop:

per ciclo

Il ciclo for ha la seguente definizione formale:

For ([inizializza contatore]; [condizione]; [modifica contatore]) ( // azioni )

Considera lo standard for loop:

"; } ?>

La prima parte della dichiarazione del ciclo - $i = 1 - crea e inizializza il contatore, la variabile $i. E prima che il ciclo venga eseguito, il suo valore sarà 1. Essenzialmente, equivale a dichiarare una variabile.

La seconda parte è la condizione in cui verrà eseguito il ciclo. In questo caso, il ciclo verrà eseguito finché $i non raggiunge 10.

La terza parte sta incrementando il contatore di uno. Ancora una volta, non è necessario aumentare di uno. Puoi diminuire: $i--.

Di conseguenza, il blocco del ciclo verrà eseguito 9 volte finché il valore di $i non diventa 10. E ogni volta questo valore aumenterà di 1. Ogni singola ripetizione del ciclo è chiamata iterazione. Quindi, in questo caso ci saranno 9 iterazioni.

ciclo while

Il ciclo while verifica la verità di alcune condizioni e, se la condizione è vera, viene eseguito il blocco di espressioni del ciclo:

"; $contatore++; ) ?>

Se è presente una sola istruzione nel blocco while, le parentesi graffe del blocco possono essere omesse:

"; ?>

fai...il ciclo while

Il ciclo do.. while è simile al ciclo while, solo che ora viene eseguito il blocco del ciclo e solo dopo viene testata la condizione. Cioè, anche se la condizione è falsa, il blocco del ciclo verrà eseguito almeno una volta:

"; $contatore++; ) while($contatore<10) ?>

Continuare e interrompere le dichiarazioni

A volte si verifica una situazione in cui è necessario uscire da un ciclo senza attendere il suo completamento. In questo caso possiamo usare l'istruzione break:

80) ( break; ) echo "Il quadrato di $i è uguale a $risultato
"; } ?>

E se all'improvviso il risultato dell'operazione risulta essere superiore a 80, il ciclo termina.

L'operatore continue viene utilizzato anche per controllare i cicli. Si passa alla successiva iterazione del ciclo:

"; } ?>

Durante l'esecuzione del programma, quando il valore di $i diventa uguale a 5, avverrà la transizione all'iterazione successiva e tutte le altre espressioni che seguono l'operatore continue non verranno eseguite.

Il ciclo for è uno dei cicli più comunemente utilizzati in qualsiasi linguaggio di programmazione. In questo articolo daremo uno sguardo più da vicino al ciclo for di PHP.

Operatore ciclo For in PHP

Un ciclo for in PHP esegue un blocco di codice un certo numero di volte in base a un contatore. In questo caso, il numero di volte in cui un blocco di codice deve essere eseguito viene determinato in anticipo prima di entrare nel corpo del ciclo.

for è uno dei tipi di loop più complessi. In PHP, un ciclo for si comporta in modo simile a C. Di seguito è riportata la struttura della sintassi:

for(espressione1;espressione2;espressione3) istruzione;

Nella descrizione sopra parola chiave for indica un ciclo. Le parentesi definiscono le espressioni e quindi l'istruzione da eseguire.

Come funziona un ciclo for in PHP?

Per capire come funziona il ciclo for, dobbiamo comprendere queste tre espressioni. Espressione: espressione1 è la prima, che viene eseguita solo una volta prima di entrare nel ciclo. Viene effettuato incondizionatamente. Ciò significa che l'espressione verrà eseguita la prima volta prima di entrare nel ciclo.

Expression1 è chiamata espressione di inizializzazione perché viene utilizzata per inizializzare il contatore utilizzato in espressione2 ed espressione3 .

Espressione2 ( controllo delle condizioni) viene controllato per determinare se la condizione consente l'esecuzione dell'istruzione o meno. La prima volta viene eseguito dopo espressione1 , quindi prima di entrare nel ciclo.

In genere espressione2 contiene un'istruzione condizionale per verificare se la condizione restituisce true o false . Se la condizione restituisce vera, verrà eseguita l'istruzione scritta nel ciclo.

Expression3 viene eseguita alla fine di ogni iterazione dopo l'istruzione loop. In genere i programmatori la chiamano espressione di incremento. Usano questa espressione per incrementare il valore di un contatore inizializzato in espressione1 e valutato in espressione2 .

Tutte e tre le espressioni sono facoltative. Puoi anche creare un loop PHP come di seguito:

for(;;) istruzione;

for(;espressione2;espressione3) istruzione;

Se abbiamo più righe in un ciclo for, utilizza le parentesi graffe come di seguito:

for(espressione1;espressione2;espressione3)( istruzione1; istruzione2; istruzione3; )

Per il diagramma di flusso del ciclo

Nel primo passaggio viene eseguita espressione1. Se osservi attentamente il diagramma a blocchi, scoprirai che non esiste alcuna condizione per l'espressione1. espressione1 è simile al flusso del programma in esecuzione.

Il passaggio successivo esegue espressione2 immediatamente dopo espressione1. Controlla se la condizione del ciclo è vera. Se la condizione è vera, il ciclo continuerà ad essere eseguito, altrimenti il ​​thread uscirà dal ciclo.

Se espressione2 restituisce true, il terzo passaggio eseguirà l'istruzione scritta nel ciclo for. Successivamente verrà eseguita la terza espressione espressione3.

Dopo l'esecuzione di espressione3, il thread controlla nuovamente espressione2 e il ciclo continua finché espressione2 restituisce false.

Un semplice esempio di ciclo for in PHP

Consideriamo il caso in cui è necessario visualizzare i numeri da 1 a 10 separati da virgole. Di seguito è riportato il codice:

for($i=1;$i<=10;$i++) print $i.",";

Oppure con la parentesi graffa:

for($i=1;$i<=10;$i++) { print $i.","; }

L'espressione $i=1 è espressione1 , che viene eseguita incondizionatamente. Usiamo espressione1 per inizializzare la variabile su $i=1 .

Expression2 è l'espressione $i :

$i=1; per(;$i<=10;$i++) { print $i.","; }

$i=1; per(;$i<=10;) { print $i.","; $i++; }

Espressione complessa in un ciclo for

Puoi scrivere tre espressioni in un ciclo for. Possiamo scrivere più istruzioni in ciascuna espressione in un ciclo for. Gli operatori devono essere separati da virgole.

Consideriamo l'esempio del codice precedente per stampare un numero da 1 a 10. Utilizzando più operatori in un'espressione, puoi scrivere il codice seguente:

for($i=1; $i<=10; print $i . ",", $i++);

Qui espressione3 è print $i.’,’, $i++ , che combina due operatori, uno è print $i. ',' e il secondo è $ i++ .

Sopra è riportato un esempio in cui abbiamo utilizzato più operatori in espressione3 . Ma puoi anche utilizzare più operatori in qualsiasi espressione. Per esempio:

Allo stesso modo, puoi stampare tutti i numeri dispari inferiori a 10 utilizzando il seguente codice:

Array e ciclo for in PHP

È possibile utilizzare un ciclo for PHP per scorrere un array. Ad esempio, abbiamo un array che contiene i nomi di persone diverse. Dobbiamo visualizzare tutti i nomi:

$nomi = array("Ankur", "Giovanni", "Gioia"); $conteggio = conteggio($nomi); for($contatore=0;$contatore<$count;$counter++){ print $names[$counter]; }

Puoi anche utilizzare un array multidimensionale in un ciclo for:

$nomi = array(array("id" => 1, "nome" => "Ankur"), array("id" => 2, "nome" => "Joe"), array("id" => 3, "nome" => "Giovanni"),); $conteggio = conteggio($nomi); for ($contatore = 0; $contatore< $count; $counter++) { print "Name".$names[$counter]["name"]." ID".$names[$counter]["id"]."n"; }

Nidificato per ciclo

È possibile utilizzare un ciclo for nidificato in PHP. Esempio:

$metrix = array(array(1, 2, 3), array(2, 1, 3), array(3, 2, 1),); $conteggio = conteggio($metrista); for ($contatore = 0; $contatore< $count; $counter++) { $c_count = count($metrix[$counter]); for ($child = 0; $child < $c_count; $child++) { echo $metrix[$counter][$child]; } }

Abbiamo un array multidimensionale e utilizziamo due cicli for PHP per visualizzare i valori dei suoi elementi.

Quando si utilizza un ciclo nidificato, è possibile utilizzare l'espressione genitore del ciclo for nel ciclo figlio. Per esempio:

per ($i = 1; $i<= 5; $i++) { for ($j = 1; $j <= $i; $j++) { echo "*"; } echo "
"; }

Il programma sopra è uno dei più popolari per stampare il simbolo * a forma di triangolo rettangolo.

Incremento in un ciclo for

In quasi tutti gli esempi precedenti, abbiamo utilizzato espressione3 , che è l'ultima espressione, come istruzione di incremento. Spesso abbiamo anche aumentato il valore di uno in tutti gli esempi, ad esempio $i++ o $j++ e così via. Ma possiamo aumentare il contatore in base alle nostre esigenze. Ad esempio, per stampare tutti i numeri dispari da 1 a 15, potresti inizializzare il ciclo con il valore 1 e scorrere fino a 15, incrementando il contatore di 2:

for($contatore = 1; $contatore<=15;$counter=$counter+2){ print $counter.","; }

L'output del codice sopra sarà " 1,3,5,7,9,11,13,15 " Qui incrementiamo la variabile contatore di +2 utilizzando l'espressione $counter=$counter+2 .

Uscita dal ciclo for

Puoi interrompere un ciclo in una determinata condizione utilizzando la parola chiave break. Non fa parte di un ciclo e viene utilizzato per interrompere l'esecuzione delle istruzioni for , foreach , while , do- while e switch. Vediamo come la parola chiave break interrompe un ciclo for.

Un semplice esempio in cui stampiamo tutti i numeri in un array fino a 100:

$serie = array(1, 8, 5, 3, 100, 9, 7); for ($i = 0, $conteggio = conteggio($serie); $i<= $count; $i++) { if (100 == $series[$i]) { break; } echo $series[$i] . " "; }

Qui interrompiamo il ciclo controllando se il valore dell'elemento dell'array è uguale a 100.

Puoi anche interrompere un ciclo PHP nidificato attraverso un array passando la profondità, ad esempio break 1 , break 2 e così via. Vedi l'esempio qui sotto:

for ($i = 0;; $i++) ( switch ($i) ( case 1: echo "Questo è uno"; break 1; //Questo interromperà solo l'istruzione switch case 2: echo "Questo è due"; break 1 ; // Questo interromperà solo l'istruzione switch case 3: echo "Questo è tre " break 2 // Questo interromperà sia lo switch che il ciclo for)

Qui, break 1 interrompe l'istruzione switch, ma break 2 interromperà l'istruzione corrente così come quella genitore, ovvero sia switch che for .

Utilizzando continue in un ciclo for

Nella sezione precedente abbiamo imparato come uscire da un ciclo. Ma cosa succede se è necessario saltare un'iterazione del ciclo e tornare al ciclo? PHP ha la parola chiave continue per questo.

Ricordiamo un esempio di emissione di numeri dispari. Tutto quello che abbiamo fatto è stato avviare il ciclo da 1, incrementare il contatore di 2 e stampare il risultato. Implementiamo questo esempio utilizzando continue :

per ($i = 0; $i< 20; $i++) { if ($i % 2 == 0) { continue; } echo $i . ","; }

Nell'esempio sopra, controlliamo l'espressione $i%2 == 0 e se è vera, usando la parola chiave continue, saltiamo il resto del ciclo e torniamo a espressione3 ($i++) e poi a espressione2 ($i:

A volte è necessario trasferire dati da una tabella di database a un array utilizzando PHP.

Il ciclo foreach di PHP può essere utilizzato in questo modo:

foreach($array_name as $value)( //codice da eseguire)

foreach($array_name as $key =>$value)( // //codice da eseguire)

Esempio di utilizzo di un ciclo foreach con un array numerico

In questo esempio creeremo un array di cinque elementi con valori numerici. Il ciclo foreach di PHP verrà quindi utilizzato per scorrere questo array. All'interno del ciclo foreach abbiamo usato echo per stampare i valori dell'array:

Visualizza demo e codice

Esempio con chiavi e valori di array

Questo esempio descrive un altro modo di utilizzare il ciclo foreach di PHP. Per fare ciò, abbiamo creato un array associativo di tre elementi. Include i nomi dei dipendenti ( come chiavi) e l'importo dei salari ( come valori):

Visualizza demo e codice

Un esempio di modifica del valore di un elemento dell'array in un ciclo foreach

Puoi anche utilizzare l'array PHP foreach per modificare i valori degli elementi dell'array. Questo viene fatto utilizzando "&" prima di "$" per la variabile valore. Per esempio:

&$valore_dell_elemento

Il valore verrà modificato. Per renderlo più chiaro, considera il seguente esempio.

In questo esempio, abbiamo creato un array numerico di cinque elementi. Successivamente, abbiamo utilizzato un ciclo foreach per visualizzare i valori degli elementi.

Quindi abbiamo creato un altro ciclo foreach, dove "& " viene aggiunto prima di $value_of_element. All'interno delle parentesi graffe assegniamo nuovi valori agli elementi dell'array.

Per vedere la differenza prima e dopo l'assegnazione di nuovi valori, l'array viene visualizzato utilizzando la funzione print_r().

Visualizza demo e codice

A cosa serve il ciclo foreach di PHP?

Il ciclo foreach di PHP viene utilizzato per lavorare con un array. Itera su ciascuno dei suoi elementi.

Puoi anche usare un ciclo for per lavorare con gli array. Ad esempio, utilizzando la proprietà length per ottenere la lunghezza di un array e quindi applicandola come operatore max. Ma foreach rende tutto più semplice poiché è progettato per funzionare con gli array.

Se lavori con MySQL, questo ciclo è ancora più adatto a questo. Ad esempio, puoi selezionare più righe da una tabella di database e passarle in un array. Successivamente, utilizzando un ciclo foreach, esegui l'iterazione di tutti gli elementi dell'array ed esegui alcune azioni.

Tieni presente che puoi utilizzare un ciclo foreach con un array o solo un oggetto.

Utilizzando un ciclo foreach

Esistono due modi per utilizzare il ciclo PHP foreach in PHP. Entrambi sono descritti di seguito.

  • La sintassi per il primo metodo è:

foreach($nome_array come $valore)( echo $valore)

In questo caso, è necessario specificare il nome dell'array e quindi la variabile $value.

Per ogni iterazione, il valore dell'elemento corrente viene assegnato alla variabile $value. Una volta completata l'iterazione, alla variabile viene assegnato il valore dell'elemento successivo. E così via finché tutti gli elementi dell'array non sono stati iterati.

  • Sintassi del secondo metodo ( PHP foreach come valore chiave):

Questo è adatto per gli array associativi che utilizzano coppie chiave/valore.

Durante ogni iterazione, il valore dell'elemento corrente verrà assegnato alla variabile $value_of_element. Inoltre, la chiave dell'elemento viene assegnata alla variabile $key_of_element.

Se lavori con array numerici, puoi utilizzare il primo metodo, che non richiede chiavi di elemento.

Questa pubblicazione è una traduzione dell’articolo “ PHP foreach loop 2 modi per usarlo", preparato dal simpatico team di progetto