Vai al contenuto
Home » My blog » corso di php lezione 10

corso di php lezione 10

  • di
corso php

Corso di PHP lezione n. 10 

Nel nostro viaggio nella realizzazione di siti web e pagine web client server con PHP continuiamo a palare di cicli

foreach

l’uso di foreach è indicato per gestire gli array.

Abbiamo due sintassi :

foreach($variabile_array as $value){

istruzioni

}

foreach ($variabile_array as $key=> $value){

istruzioni

}

corso php

la sintassi non richiede l’utilizzo di indici né di incrementi, infatti il costrutto

opererà su tutti gli argomenti dell’array indistintamente. Dunque questo strumento risulta comodo e versatile

quando si ha a che fare con array con chiavi particolari o non consecutive (nel caso di chiavi numeriche).

Esempio:

array_1=(1,”a”,5,”c”,”ciao”); //quindi con chiavi da 0 a 4

quindi protremmo operare sull’array in quanto possiede chiavi consecutive

ora vediamo invece questo esempio:

$array_2=(“uno”=>1,//chiave stringa value intero

frutta”=>”mela”, //chiave stringa value stringa

5=>”cinque”,//chiave intero value stringa

40=>30/chiave intero valore intero

si supponga di non conoscere le chiavi dell’array perché assegnate dinamicamente con i classici cicli non potremmo operare invece con foreach risulta alquanto semplice.

foreach($array_2 =>$val)

{

echo “<br>valore =”,$val;

if(is_integer($val)){

echo “— e’ un intero”;

}

{

else

echo “—non e’ un intero”;

}

}

con la seconda sintassi :

foreach($array_2 $key=> $valore)

{

echo “<br> val=”. $val”;

if(is_integer($valore))

{

echo “chiave=” .$key .“ ed e intero“;

}

else{

echo“chiave=”.$key.” ed e stringa”;

}

}

altro esempio

Le istruzioni raggruppate nelle parentesi graffe verranno ripetute tante volte quanti sono gli elementi presenti nell’array $array_da_attraversare. Ad ogni iterazione verrà letto un valore presente in tale array e copiato nella variabile $valore_elemento. Vediamo un esempio:

<?php
$colori = array('bianco','rosso','verde','blu','giallo','nero');

foreach ($colori as $colore)
{
    echo $colore , '<br>';
}
?>

Se vogliamo anche modificare la variabile che stiamo itercoloreando è sufficiente porre il carattere & prima della variabile $colore in modo da fare riferimento all'indirizzo di memoria della variabile nell'espressione del ciclo foreach per far si che ogni modifica effettuata su di essa venga in realtà effettuata sul relativo valore dell'array. L'esempio seguente è identico al precedente, tranne che per il carattere & posto a sinistra della variabile $colore. Questa volta le modifiche ai valori dell'array avranno effetto.

<?php
$colori = array('bianco','rosso','verde','blu','giallo','nero');

foreach ($colori as &$colore)
{
    $colore = strtoupper($colore);
}

unset($colore);

foreach ($colori as $colore)
{
    echo $colore , '<br>';
}
?>

Attenzione: l'utilizzo del carattere & fa si che alla fine del primo ciclo foreach la variabile $colore non è semplicemente una copia dell'ultimo elemento dell'array bensì è l'utlimo elemento dell'array. Per questa ragione dobbiamo "distruggere" $colore con l'istruzione unset() prima di riutilizzare questa variabile nel secondo ciclo.

Mostriamo adesso un ultima variante,della sintassi del ciclo foreach che permette di scorrere un array e recuperarne gli elementi sotto forma di coppie chiave => valore. Ecco la struttura tipica:

foreach ($array_da_attraversare as $chiave_elemento => $valore_elemento)
{
   // istruzioni da iterare
}

L'unica differenza è che adesso anche le chiavi di ciascun elemento vengono lette e copiate nella variabile $chiave_elemento. Vediamo un semplice esempio:

<?php
$film = array('titolo' => 'Via col Vento', 'anno' => 1939,'regista' => 'Victor Fleming');

foreach ($film as $info => $valore)
{
    echo "$info: $valore <br>\n";
}
?>
Aut Ing. Antonio Vizzì ha sviluppato progetti c/c++, Php, mysql,android, iOS, realizzazione siti web ed ottimizzazione SEO, web marketing.....