📚 Fiche Résumé - Séance 2 : Tableaux et Boucles en PHP

🎯 Objectifs de la séance

📊 1. Les tableaux en PHP

Tableau scalaire (indexé)

Un tableau dont les clés sont des entiers automatiques (0, 1, 2, 3...).

<?php
// Création d'un tableau scalaire
$couleurs = array("Rouge", "Vert", "Bleu", "Jaune");

// Ou avec la syntaxe courte (PHP 5.4+)
$couleurs = ["Rouge", "Vert", "Bleu", "Jaune"];

// Accès aux éléments
echo $couleurs[0]; // Affiche : Rouge
echo $couleurs[1]; // Affiche : Vert
?>

Tableau associatif

Un tableau dont les clés sont des chaînes de caractères personnalisées.

<?php
// Création d'un tableau associatif
$couleurs = array(
    "red" => "Rouge",
    "green" => "Vert",
    "blue" => "Bleu",
    "yellow" => "Jaune"
);

// Ou avec la syntaxe courte
$couleurs = [
    "red" => "Rouge",
    "green" => "Vert",
    "blue" => "Bleu",
    "yellow" => "Jaune"
];

// Accès aux éléments
echo $couleurs["red"];   // Affiche : Rouge
echo $couleurs["green"]; // Affiche : Vert
?>

Tableau à 2 dimensions (matrice)

Un tableau qui contient d'autres tableaux.

<?php
$voitures = array(
    array("Volvo", "rouge", "4 places", 3),
    array("Renault", "rouge", "4 places", 3),
    array("BMW", "blanche", "coupé", 4)
);

// Accès aux éléments
echo $voitures[0][0]; // Affiche : Volvo
echo $voitures[0][1]; // Affiche : rouge
echo $voitures[1][0]; // Affiche : Renault
?>
⚠️ Important : Les indices des tableaux commencent à 0 en PHP.

🔄 2. Les boucles en PHP

Boucle for

Utilisée quand on connaît le nombre d'itérations à l'avance.

<?php
// Afficher les nombres de 1 à 10
for ($i = 1; $i <= 10; $i++) {
    echo $i . "<br>";
}

// Parcourir un tableau
$couleurs = array("Rouge", "Vert", "Bleu", "Jaune");
for ($i = 0; $i < count($couleurs); $i++) {
    echo "La couleur n°$i est " . $couleurs[$i] . "<br>";
}
?>

Boucle foreach (tableau scalaire)

La meilleure façon de parcourir un tableau en PHP.

<?php
$couleurs = array("Rouge", "Vert", "Bleu", "Jaune");

// Parcourir uniquement les valeurs
foreach ($couleurs as $couleur) {
    echo $couleur . "<br>";
}
?>

Boucle foreach (tableau associatif)

<?php
$couleurs = array(
    "red" => "Rouge",
    "green" => "Vert",
    "blue" => "Bleu"
);

// Parcourir clés ET valeurs
foreach ($couleurs as $cle => $valeur) {
    echo "$cle => $valeur<br>";
}
?>

Boucle while

La condition est testée avant chaque itération.

<?php
// Afficher les nombres de 1 à 10
$i = 1;
while ($i <= 10) {
    echo $i . "<br>";
    $i++;
}

// Parcourir un tableau
$couleurs = array("Rouge", "Vert", "Bleu", "Jaune");
$i = 0;
while ($i < count($couleurs)) {
    echo "La couleur n°$i est " . $couleurs[$i] . "<br>";
    $i++;
}
?>

Boucle do...while

La condition est testée après chaque itération. Le code s'exécute au moins 1 fois.

<?php
// Afficher les nombres de 1 à 10
$i = 1;
do {
    echo $i . "<br>";
    $i++;
} while ($i <= 10);

// Parcourir un tableau
$couleurs = array("Rouge", "Vert", "Bleu", "Jaune");
$i = 0;
do {
    echo "La couleur n°$i est " . $couleurs[$i] . "<br>";
    $i++;
} while ($i < count($couleurs));
?>
📌 Différence while vs do...while :

🔧 3. Fonctions utiles pour les tableaux

count() - Compter les éléments

<?php
$couleurs = array("Rouge", "Vert", "Bleu", "Jaune");
$taille = count($couleurs);
echo "Le tableau contient $taille éléments."; // Affiche : 4
?>

sort() - Trier par ordre croissant

<?php
$couleurs = array("Jaune", "Rouge", "Bleu", "Vert");
sort($couleurs);

foreach ($couleurs as $couleur) {
    echo $couleur . "<br>";
}
// Affiche : Bleu, Jaune, Rouge, Vert (ordre alphabétique)
?>

rsort() - Trier par ordre décroissant

<?php
$couleurs = array("Jaune", "Rouge", "Bleu", "Vert");
rsort($couleurs);

foreach ($couleurs as $couleur) {
    echo $couleur . "<br>";
}
// Affiche : Vert, Rouge, Jaune, Bleu (ordre alphabétique inverse)
?>
⚠️ Attention : sort() et rsort() modifient le tableau original et réinitialisent les clés (0, 1, 2...).

Tableau récapitulatif des fonctions de tri

Fonction Tri Préserve les clés ?
sort() Croissant (valeurs) ❌ Non
rsort() Décroissant (valeurs) ❌ Non
asort() Croissant (valeurs) ✅ Oui
arsort() Décroissant (valeurs) ✅ Oui
ksort() Croissant (clés) ✅ Oui
krsort() Décroissant (clés) ✅ Oui

📐 4. Parcourir un tableau 2D

Avec deux boucles for

<?php
$voitures = array(
    array("Volvo", "rouge", "4 places", 3),
    array("Renault", "rouge", "4 places", 3),
    array("BMW", "blanche", "coupé", 4)
);

// Parcourir toutes les lignes
for ($i = 0; $i < count($voitures); $i++) {
    // Parcourir toutes les colonnes de la ligne $i
    for ($j = 0; $j < count($voitures[$i]); $j++) {
        echo $voitures[$i][$j] . " ";
    }
    echo "<br>";
}
?>

Afficher dans un tableau HTML

<?php
$voitures = array(
    array("Volvo", "rouge", "4 places", 3),
    array("Renault", "rouge", "4 places", 3),
    array("BMW", "blanche", "coupé", 4)
);
?>

<table border="1">
    <tr>
        <th>Marque</th>
        <th>Couleur</th>
        <th>Nombre de places</th>
        <th>Quantité</th>
    </tr>
    <?php foreach ($voitures as $voiture): ?>
        <tr>
            <td><?php echo $voiture[0]; ?></td>
            <td><?php echo $voiture[1]; ?></td>
            <td><?php echo $voiture[2]; ?></td>
            <td><?php echo $voiture[3]; ?></td>
        </tr>
    <?php endforeach; ?>
</table>

📋 5. Comparaison des boucles

Boucle Quand l'utiliser ? Exemple typique
for Nombre d'itérations connu Parcourir tableau avec indices
foreach Parcourir un tableau Afficher tous les éléments
while Condition avant chaque tour Boucle avec condition complexe
do...while Au moins 1 exécution garantie Menu interactif, validation

✅ Points clés à retenir

💡 Syntaxe alternative de foreach

Pour un code HTML plus lisible :

<?php foreach ($couleurs as $couleur): ?>
    <p><?php echo $couleur; ?></p>
<?php endforeach; ?>

Équivalent à :

<?php 
foreach ($couleurs as $couleur) {
    echo "<p>$couleur</p>";
}
?>