Come abbiamo visto negli esempi del capitolo precedente, vi sono dei costrutti che ci aiutano nell'esplorare il contenuto degli array questi sono list(), each(), e foreach().
Andiamo ad analizzare più in dettaglio i costrutti ora citati.
Descrizione : Assegna valori a delle variabili come se fossero un array
Come array(), questa non è in realtà una funzione, bensì un costrutto del linguaggio. list() è usata per assegnare valori ad una lista di variabili in una sola operazione.
Funziona solo su array numerici e si aspetta che gli indici numerici partano da 0.
Esempio:
<?php
$info = array('caffè', 'scuro', 'caffeina');
// assegna a tutte le variabili
list($bevanda, $colore, $componente) = $info;
print "Il $bevanda è $colore e la $componente lo rende speciale.\n";
// assegna solo in parte
list($bevanda, , $componente) = $info;
print "Il $bevanda ha la $componente.\n";
// oppure assegnamo solo l'ultima variabile
list( , , $componente) = $info;
print "Ho voglia di $bevanda!\n";
?>
Un esempio di reperimento informazioni da un array tramite il costrutto list()
<table>
<tr>
<th>Nome dell'impiegato</th>
<th>Stipendio</th>
</tr>
<?php
$risultato = mysql_query ("SELECT id, nome, stipendio FROM impiegati",$conn);
while (list ($id, $nome, $stipendio) = mysql_fetch_row ($risultato)) {
print (" <tr>\n".
" <td><a href=\"info.php?id=$id\">$nome</a></td>\n".
" <td>$stipendio</td>\n".
" </tr>\n");
}
?>
</table>
Il costrutto list() ha parecchie particolarità che però esulano dal contesto del corso, pertanto invitiamo ad approfondire l'utilizzo del costrutto consultando il manuale on line su www.php.net.
Descrizione: Restituisce la corrente coppia chiave/valore di un array e incrementa il puntatore dello array.
Restituisce la corrente coppia chiave/valore corrente di array e incrementa il puntatore interno dell'array. Questa coppia è restituita in un array di quattro elementi, con le chiavi 0, 1, key, and value. Gli elementi 0 e key contengono il nome della chiave dell'elemento dell' array, mentre 1 e value contengono i dati.
Se il puntatore interno dell' array punta oltre la fine dei contenuti dell' array, each() restituisce FALSE.
Esempio
$foo = array ("bob", "fred", "jussi", "jouni", "egon", "marliese");
$bar = each ($foo);
print_r($bar);
$bar ora contiene la seguente coppia chiave/valore:
Array
(
[1] => bob
[value] => bob
[0] => 0
[key] => 0
)
$foo = array ("Robert" => "Bob", "Seppo" => "Sepi");
$bar = each ($foo);
print_r($bar);
$bar ora contiene la seguente coppia chiave/valore:
Array
(
[1] => Bob
[value] => Bob
[0] => Robert
[key] => Robert
)
each() di solito è usato insieme a list() per navigare un array come nell'esempio:
// Navigare con each() e list() in un array associativo
while (list($chiave,$valore) = each($modello_auto)) {
echo “Modello: <b>$chiave</b> - “;
echo “Descrizione : <b>$valore</b><br>\n”;
}