Parcourir un tableau


Lorsqu'un tableau a été créé, on a souvent besoin de le parcourir pour savoir ce qu'il contient. Nous allons voir trois moyens d'explorer un array :

  • la boucle for ; 
  • la boucle foreach ;
  • la fonction print_r (utilisée principalement pour le débogage).

La boucle for



Il est très simple de parcourir un tableau numéroté avec une boucle for. En effet, puisqu'il est numéroté à partir de 0, on peut faire une boucle for qui incrémente un compteur à partir de 0 :

Code : PHP 

 1

 2

 3

 4

 5

 6

 7

 8

 9

10

<?php

// On crée notre array $prenoms

$prenoms = array ('François', 'Michel', 'Nicole', 'Véronique', 'Benoît');


// Puis on fait une boucle pour tout afficher :

for ($numero = 0; $numero < 5; $numero++)

{

    echo $prenoms[$numero] . '<br />'; // affichera $prenoms[0], $prenoms[1] etc.

}

?>



Quand on écrit $prenoms[$numero], la variable $numero est d'abord remplacée par sa valeur. Par exemple, si $numero vaut 2, alors cela signifie qu'on cherche à obtenir ce que contient $prenoms[2], c'est-à-dire… Nicole. Bravo, vous avez compris.  


La boucle foreach



La boucle for a beau fonctionner, on peut utiliser un autre type de boucle plus adapté aux tableaux qu'on n'a pas encore vu jusqu'ici : foreach. C'est une sorte de boucle for spécialisée dans les tableaux.

foreach va passer en revue chaque ligne du tableau, et lors de chaque passage, elle va mettre la valeur de cette ligne dans une variable temporaire (par exemple $element).

Je parle chinois ? Regardez plutôt :

Code : PHP 

1

2

3

4

5

6

7

8

<?php

$prenoms = array ('François', 'Michel', 'Nicole', 'Véronique', 'Benoît');


foreach($prenoms as $element)

{

    echo $element . '<br />'; // affichera $prenoms[0], $prenoms[1] etc.

}

?>



C'est le même code que tout à l'heure mais cette fois basé sur une boucle foreach. À chaque tour de boucle, la valeur de l'élément suivant est mise dans la variable $element. On peut donc utiliser $element uniquement à l'intérieur de la boucle afin d'afficher l'élément en cours.

L'avantage de foreach est qu'il permet aussi de parcourir les tableaux associatifs.

Code : PHP 

 1

 2

 3

 4

 5

 6

 7

 8

 9

10

11

12

<?php

$coordonnees = array (

    'prenom' => 'François',

    'nom' => 'Dupont',

    'adresse' => '3 Rue du Paradis',

    'ville' => 'Marseille');


foreach($coordonnees as $element)

{

    echo $element . '<br />';

}

?>



foreach va mettre tour à tour dans la variable $element le prénom, le nom, l'adresse et la ville contenus dans l'array $coordonnees.

On met donc entre parenthèses :

  1. d'abord le nom de l'array (ici $coordonnees) ;
  2. ensuite le mot-clé as (qui signifie quelque chose comme « en tant que ») ;
  3. enfin, le nom d'une variable que vous choisissez et qui va contenir tour à tour chacun des éléments de l'array (ici $element).

Entre les accolades, on n'utilise donc que la variable $element.
La boucle s'arrête lorsqu'on a parcouru tous les éléments de l'array.

Toutefois, avec cet exemple, on ne récupère que la valeur. Or, on peut aussi récupérer la clé de l'élément. On doit dans ce cas écrire foreach comme ceci :

Code : PHP 

1

<?php foreach($coordonnees as $cle => $element) ?>



À chaque tour de boucle, on disposera non pas d'une, mais de deux variables :

  • $cle, qui contiendra la clé de l'élément en cours d'analyse (« prenom », « nom », etc.) ;
  • $element, qui contiendra la valeur de l'élément en cours (« François », « Dupont », etc.).

Testons le fonctionnement avec un exemple :

Code : PHP

 1

 2

 3

 4

 5

 6

 7

 8

 9

10

11

12

<?php

$coordonnees = array (

    'prenom' => 'François',

    'nom' => 'Dupont',

    'adresse' => '3 Rue du Paradis',

    'ville' => 'Marseille');


foreach($coordonnees as $cle => $element)

{

    echo '[' . $cle . '] vaut ' . $element . '<br />';

}

?>



Avec cette façon de procéder, vous avez maintenant dans la boucle la clé ET la valeur.

Et foreach, croyez-moi, c'est une boucle vraiment pratique ! On s'en sert régulièrement !


Afficher rapidement un array avec print_r



Parfois, en codant votre site en PHP, vous aurez sous les bras un array et vous voudrez savoir ce qu'il contient, juste pour votre information. Vous pourriez utiliser une boucle for ou, mieux, une boucle foreach. Mais si vous n'avez pas besoin d'une mise en forme spéciale et que vous voulez juste savoir ce que contient l'array, vous pouvez faire appel à la fonction print_r. C'est une sorte de echo spécialisé dans les arrays.

Cette commande a toutefois un défaut : elle ne renvoie pas de code HTML comme <br /> pour les retours à la ligne. Pour bien les voir, il faut donc utiliser la balise HTML <pre> qui nous permet d'avoir un affichage plus correct.

Code : PHP

 1

 2

 3

 4

 5

 6

 7

 8

 9

10

11

<?php

$coordonnees = array (

    'prenom' => 'François',

    'nom' => 'Dupont',

    'adresse' => '3 Rue du Paradis',

    'ville' => 'Marseille');


echo '<pre>';

print_r($coordonnees);

echo '</pre>';

?>



Voilà, c'est facile à utiliser du moment qu'on n'oublie pas la balise <pre> pour avoir un affichage correct.

Bien entendu, vous n'afficherez jamais des choses comme ça à vos visiteurs. On peut en revanche s'en servir pour le débogage, pendant la création du site, afin de voir rapidement ce que contient l'array.

Créé avec HelpNDoc Personal Edition: Découvrez la puissance et la facilité d'utilisation de HelpNDoc pour la génération de fichiers d'aide CHM