Il ciclo for,sebbene potente e versatile, può risultare piuttosto limitativo nel caso si volesse lavorare con array. In questi casi risulta più utile l'uso del ciclo foreach.
Il ciclo foreach ha una sintassi del tipo:
foreach ($array as $valore_elemento)
{
// istruzioni da iterare
}
Le istruzioni raggruppate nelle parentesi graffe si ripetono tante volte quanti sono gli elementi presenti nell'array $array. Ad ogni ripetizione verrà letto un valore presente in tale array e copiato nella variabile $valore_elemento. Per chiarirvi le idee:
Abbiamo attraversato 2 volte l'array $colori. La prima volta abbiamo modificato ogni suo elemento per trasformare tutte le lettere in maiuscolo (strtoupper). La seconda volta ci mostra il contenuto che...risulta inalterato! Perché?
Semplice! La variabile $colore contiene esclusivamente la copia di un valore dell'array $colori quindi non è direttamente collegato ad esso. Pertanto, modificando la variabile $colore, non si hanno ripercussioni sul valore dell'array $colori.
Con l'introduzione del PHP 5 però le cose sono cambiate.
Basta infatti inserire il simbolo & prima della variabile $colore perchè le modifiche effettuate su di essa siano riflesse sul relativo valore dell'array.
Nell'esempio seguente, le modifiche ai valori dell'array avranno effetto.
Attenzione: l'utilizzo di & fa si che, terminato il primo ciclo del foreach, $colore diventi l'utlimo elemento dell'array (e non solo una copia). Per questa dobbiamo procedere con l'eliminazione della variabile $colore con l'istruzione unset() prima di poter riutilizzarla poi nel secondo ciclo. Se cosí non fosse, il secondo foreach sovrascriverebbe ad ogni iterazione l'utlimo elemento di $colori con ciascuno degli altri elementi dello stesso array.
Per concludere, vi mostreremo un'ultima variante del ciclo foreach che vi permetterà di scorrere un array e recuperarne gli elementi sotto forma di coppie chiave => valore:
foreach ($array_da_attraversare as $chiave_elemento => $valore_elemento) {
// istruzioni da iterare
}
Funziona piú o meno come la funzione vista in precedenza, solo che ora le chiavi di ciascun elemento sono lette e copiate nella variabile $chiave_elemento.
Anche utilizzando questa sintassi è possibile ricorrere al carattere & per far si che la variabile $valore sia legata direttamente al corrispondente valore dell'array in modo da modificarlo.
by
Janeth Kent Date:
19-02-2017
visite :
4271
Janeth Kent
Licenciada en Bellas Artes y programadora por pasión. Cuando tengo un rato retoco fotos, edito vídeos y diseño cosas. El resto del tiempo escribo en MA-NO WEB DESIGN AND DEVELOPMENT.