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 :
3354
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 END DEVELOPMENT.
MENSAJE
OPERACIÓN EJECUTADA
Utilizziamo i nostri cookie e quelli di terzi per migliorare i nostri servizi, compilare informazioni statistiche e analizzare le vostre abitudini di navigazione. Questo ci permette di personalizzare i contenuti che offriamo e di mostrarvi le pubblicità relative alle vostre preferenze. Cliccando su "Accetta tutto" acconsentite alla memorizzazione dei cookie sul vostro dispositivo per migliorare la navigazione del sito web, analizzare il traffico e assistere le nostre attività di marketing. Potete anche selezionare "Solo cookies di sistema" per accettare solo i cookies necessari al funzionamento del sito web, oppure potete selezionare i cookies che desiderate attivare cliccando su "Impostazioni".
Tradotto con www.DeepL.com/Translator (versione gratuita)" o "Rifiuta".
Questi cookie sono necessari per il funzionamento del sito Web e non possono essere disattivati sui nostri sistemi. Generalmente vengono impostate solo in risposta alle vostre azioni di richiesta di servizi, come l'impostazione delle vostre preferenze sulla privacy, l'accesso o la compilazione di moduli. È possibile impostare il browser in modo da bloccare o avvisare l'utente di questi cookie, ma alcune aree del sito non funzioneranno. Questi cookie non memorizzano alcuna informazione di identificazione personale
Performance Cookies
Questi cookie ci permettono di contare le visite e le fonti di traffico in modo da poter valutare le prestazioni del nostro sito e migliorarle. Ci aiutano a sapere quali sono le pagine più o meno visitate e come i visitatori navigano nel sito. Tutte le informazioni raccolte da questi cookie sono aggregate e quindi anonime. Se non consentite l'utilizzo di questi cookie, non sapremo quando avete visitato il nostro sito e non saremo in grado di valutare se ha funzionato correttamente
Cookies Funzionali
Questi cookie consentono al sito Web di fornire una migliore funzionalità e personalizzazione. Essi possono essere impostati dalla nostra azienda o da fornitori esterni di cui abbiamo aggiunto i servizi alle nostre pagine. Se non si consente l'utilizzo di questi cookie, alcuni di questi servizi potrebbero non funzionare correttamente
Cookies Pubblicitari
Questi cookie possono essere impostati attraverso il nostro sito dai nostri partner pubblicitari. Possono essere utilizzati da queste aziende per profilare i vostri interessi e visualizzare annunci pertinenti su altri siti. Non memorizzano direttamente le informazioni personali, ma si basano sull'identificazione univoca del browser e del dispositivo Internet. Se non si consente l'utilizzo di questi cookie, si vedrà una pubblicità meno mirata