foreach
En PHP, nous pouvons répéter une même tâche plusieurs fois grâce aux boucles.
Dans notre cas, nous allons parcourir le tableau des utilisateurs pour afficher chaque élément de la même manière, 12 fois.
Méthode : Boucle
On remarque que la liste <ul> de notre page utilisateur/index.php contient 12 balises <li> identiques.
Chaque <li> ne diffère des autres que par l’indice du tableau.
Nous utilisons une boucle foreach pour parcourir l’ensemble des utilisateurs du tableau et les afficher.
// ============================== // CONNEXION À LA BASE DE DONNÉES // ==============================$db = require '../bdd.php';
// ==============================// VARIABLES POUR LA VUE// ==============================// Chemin de base pour les inclusions$page_base = '../';
// Titre dynamique de la page$page_title = 'Afficher les utilisateurs';
// Feuilles de styles spécifiques à la page$page_styles = ['utilisateur', 'card'];
<html lang='fr'>
require "$page_base/head.php";
<body>
require "$page_base/header.php";
<main>
<h1>Afficher</h1>
<ul class="utilisateur-list">
foreach ($listeUtilisateurs as $utilisateur):
<li>
<figure class="card">
<img src='= $utilisateur['photo'] ' alt='= "photo de {$utilisateur['nom']} {$utilisateur['prenom']}" ' />
<figcaption>
= "{$utilisateur['nom']} {$utilisateur['prenom']} - {$utilisateur['age']} ans"
</figcaption>
</figure>
</li>
endforeach;
</ul>
</main>
require "$page_base/footer.php";
</body>
</html>
Remarquez que nous ouvrons le PHP avant le foreach et que nous le fermons juste après le début de la boucle ({ ?>).
Nous construisons ensuite le <li>.
La fermeture de la boucle (}) se fait à l’intérieur d’une balise PHP.
La boucle foreach s’exécute autant de fois qu’il y a d’éléments dans le tableau (ici 12 fois).
À chaque itération, la variable $utilisateur contient un utilisateur différent.
Le contenu de $utilisateur['nom'] varie selon l’itération en cours.
Ainsi, le même <li> est généré 12 fois, seul le contenu des champs nom, prenom, age et photo change.
Méthode : Code alternatif
L’ouverture et la fermeture d’un foreach peut se faire de deux manières ; voici la deuxième méthode :
<?php foreach ($listeUtilisateurs as $utilisateur): ?>
<li>
<figure class="card">
<img src='<?= $utilisateur['photo'] ?>' alt='<?= "photo de {$utilisateur['nom']} {$utilisateur['prenom']}" ?>' />
<figcaption>
<?= "{$utilisateur['nom']} {$utilisateur['prenom']} - {$utilisateur['age']} ans" ?>
</figcaption>
</figure>
</li>
<?php endforeach; ?>