Les tableaux multidimensionnels PHP: domptez leur puissance

Avatar de Benjamin Crozat.

Publié le par Benjamin Crozat

Temps de lecture estimé : 3 minutes

Le tableau est un des composants les plus puissants du langage PHP et sa maitrise est importante. Qui plus est, c'est aussi un concept très abordable.

Article certifié pour PHP 8.1.

Qu’est-ce qu’un tableau multidimensionnel ?

Un tableau (ou array) multidimensionnel en PHP est un tableau dans lequel sont imbriqués d’autres tableaux. 2, 3, 4 ou une infinités de dimensions, il n’y a presque aucune limitation.

Comment initialiser un tableau multidimensionnel ?

Créer un tableau multidimensionnel est d’une simplicité infantile :

$habitantsDeSpringfield = [
[
'nom' => 'Homer Simpson',
'profession' => 'Inspecteur de la sécurité dans une agence nucléaire',
],
[
'nom' => 'Homer Simpson',
'profession' => 'Inspecteur de la sécurité dans une agence nucléaire',
],
];

La plupart du temps, il est plus simple d’utiliser une clé (représentée par une chaîne de caractère ou “string” en anglais) afin de faciliter l’utilisation de votre tableau (dans ce cas, il devient associatif et multidimensionnel) :

$listeDesPokemon = [
'Pikachu' => [
'Taille' => 0.4,
'Poids' => 6,
],
'Raichu' => [
'Taille' => 0.8,
'Poids' => 30,
],
];

Comment récupérer les valeurs d’un tableau multidimensionnel ?

Récupérer une des valeurs d’un tableau multidimensionnel est possible en utilisant la clé de la valeur que vous souhaitez afficher (voilà pourquoi il est plus simple d’utiliser une chaîne de caractères).
Par exemple, nous souhaitons afficher le type de Pikachu. Nous allons donc appeler la clé “Pikachu” ainsi que la clé “taille”, l’une à la suite de l’autre.

// Pikachu mesure 0.4m.
echo "Pikachu mesure {$listeDesPokemon['Pikachu']['taille']}m.";

Comment parcourir un tableau multidimensionnel ?

foreach

Imaginons que nous voulons afficher la liste des Pokémon sur notre page web ; PHP a une instruction pour ça et elle s’appelle foreach.

<ul>
<?php foreach ($listeDesPokemon as $nom => $informations) : ?>
<li>
<?php echo $nom; ?>
 
<ul>
<li>Taille : <?php echo $informations['Taille']; ?></li>
<li>Poids : <?php echo $informations['Poids']; ?></li>
</ul>
</li>
<?php endforeach; ?>
</ul>

Dans cet exemple, pour chaque entrée dans le tableau $listeDesPokemon, nous récupérons la clé grâce à une variable créée à la volée (elle s’appelle $nom, mais vous pourriez l’appeler $key ou même $azerty si ça vous chante) ainsi que la valeur contenu dans cette clé (dans notre cas, il s’agit d’informations diverses à propos du Pokémon). Ensuite, nous affichons tout ça à coup de echo.

Bien que notre code réponde à notre besoin, nous pouvons l’optimiser afin qu’il ne soit pas nécessaire pour nous de mettre à jour notre HTML pour chaque nouvelle information que nous ajouterons :

<ul>
<?php foreach ($listeDesPokemon as $nom => $informations) : ?>
<li>
<?php echo $nom; ?>
 
<ul>
<?php foreach ($informations as $libelle => $valeur) : ?>
<li><?php echo $libelle; ?> : <?php echo $valeur; ?></li>
<?php endforeach; ?>
</ul>
</li>
<?php endforeach; ?>
</ul>

Pour résumer, une boucle foreach nous permet d’exécuter du code (un echo dans cet exemple, mais vous pouvez y mettre tout ce que vous voulez) pour chaque entrée contenue dans un tableau donné. Nous récupérons le nom du Pokémon (qui est en réalité la clé) ainsi que ses informations (contenues dans un tableau créé à la volée que nous appelons $informations). Ensuite, nous terminons en imbriquant un autre foreach dans le foreach initial afin d’afficher les informations.

Continuez votre lecture et devenez un expert en PHP :

0 commentaire

Besoin d'aide ? Envie de partager ?
Inscrivez-vous ou connectez-vous d'abord.

Ça vous a plu ?
Abonnez-vous à la newsletter !

Recevez régulièrement news, trucs et astuces à propos de Laravel et son ecosystème.

Autres articles à lire