Array e cicli

(funzioni list e each per facilitare l'interazione fra array e cicli)

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.

 

 

 

List

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.

 

Each()

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”;

}