Généralement, le parcours des éléments d'un tableau s'effectue par le truchement d'une boucle while et plus spécifiquement foreach.
La boucle while nécessite l'utilisation de trois fonctions supplémentaires :
La condition de la boucle while consiste à comparaître la liste de variables au couple clé/valeur en cours.
$tableau = array(val1, val2, ..., valN);
reset($tableau);
while (list(, $valeur) = each($tableau)){
echo "Valeur: $valeur";
}
$jour = array("Dimanche", "Lundi", "Mardi", "Mercredi",
"Jeudi", "Vendredi", "Samedi");
$i = 0;
reset($jour);
while (list(, $JJ) = each ($jour)){
echo "La cellule n° ". $i . " : " . $JJ . "<br>";
$i++;
}
La boucle foreach permet de parcourir tous les éléments d'un tableau à partir d'une structure de boucle simple.
$tableau = array(val1, val2, ..., valN);
foreach($tableau as $valeur){
echo "Valeur: $valeur";
}
$jour = array("Dimanche", "Lundi", "Mardi", "Mercredi",
"Jeudi", "Vendredi", "Samedi");
$i = 0;
foreach($jour as $JJ){
echo "La cellule n° ". $i . " : " . $JJ . "<br>";
$i++;
}
Le parcours d'un tableau associatif est réalisable en ajoutant avant la variable $valeur, la clé associée.
$tableau = array(clé1 => val1, clé2 => val2, ..., cléN => valN);
foreach($tableau as $clé => $valeur){
echo "Valeur ($clé): $valeur";
}
$jour = array("Dimanche" => 7, "Lundi" => 1, "Mardi" => 2,
"Mercredi" => 3, "Jeudi" => 4,
"Vendredi" => 5, "Samedi" => 6);
foreach($jour as $sJJ => $nJJ){
echo "Le jour de la semaine n° ". $nJJ . " : " . $sJJ . "<br>";
}
La boucle for parcourt essentiellement les tableaux indicés, en commençant l'itération à un indice précis (ex.: 0), jusqu'à la taille du tableau moins un. Le parcours s'effectue en incrémentant une variable qui permettra de désigner un élément précis du tableau.
$fichier = fopen('assurances.csv', 'r');
echo '<table border="1">\n';
while(!feof($fichier)){
$enregistrement = fgetcsv($fichier, 1024, ';');
if(substr($enregistrement[0], 0, 1) == '#') continue;
echo '<tr>\n';
$taille = sizeof($enregistrement);
for ($i = 0; $i < $taille; $i++) {
echo '\t<td>' . $enregistrement[$i] . '</td>\n';
}
echo '</tr>\n';
}
echo '</table>";
La fonction list() affecte une série de variables en fonction des éléments d'un tableau et de leur séquence.
$fichier = fopen('assurances.csv', 'r');
echo '<table border="1">\n';
while(!feof($fichier)){
$enregistrement = fgetcsv($fichier, 1024, ';');
if(substr($enregistrement[0], 0, 1) == '#') continue;
list($nom,
$adresse,
$telephone,
$fax) = $enregistrement;
echo '\t<tr>\n';
echo '\t\t<td>' . $nom . '</td>\n';
echo '\t\t<td>' . $adresse . '</td>\n';
echo '\t\t<td>' . $telephone . '</td>\n';
echo '\t\t<td>' . $fax . '</td>\n';
echo '\t</tr>\n';
}
echo '</table>";
L'affectation d'un tableau en utilisant une boucle est tout à fait envisageable. Il suffit seulement d'obtenir les valeurs à affecter au tableau, à partir d'un autre tableau, d'une source de données quelconque (fichier csv, base de données, xml, etc.) ou bien calculer à l'aide variables existantes dans le programme.
for($i = 0; $i < 10; $i++){
$puissance[] = pow(2, $i); //Indiçage automatique
$racine[$i] = sqrt($i); //Indiçage explicite
}