Leçon 7 / 12
Leçon 07 · Partie 2 — Aller plus loin

Tableaux

Pourquoi les tableaux ?

Tu sais stocker une valeur dans une variable. Mais 50 prénoms ? Créer 50 variables serait absurde. C'est pour ça que les tableaux existent.

Un tableau (array) est une variable qui contient plusieurs valeurs. Comme une étagère avec des cases. Chaque case a un numéro. Tu y accèdes par ce numéro.

Utile pour : liste de produits, panier, résultats de base de données, pages d'un menu...

Tableau indexé — la liste numérotée

Forme la plus simple. Les valeurs ont un numéro de position qui commence à 0 (pas 1 — attention !). Ce numéro s'appelle l'index.

PHP
$fruits = ["pomme", "banane", "cerise"];
//          index 0   index 1    index 2

echo $fruits[0]; // pomme  — le premier élément est à l'index 0
echo $fruits[1]; // banane
echo $fruits[2]; // cerise

Pour modifier ou ajouter des éléments :

PHP
// Modifier un élément existant
$fruits[0] = "fraise";  // "pomme" est remplacée par "fraise"

// Ajouter un élément à la fin (PHP choisit l'index automatiquement)
$fruits[] = "mangue";   // ajouté à l'index 3
⚠️

L'index commence à 0 ! C'est une des sources d'erreurs les plus fréquentes chez les débutants. Le premier élément est [0], pas [1]. Si tu as 5 éléments, leurs index sont 0, 1, 2, 3, 4.

Tableau associatif — la fiche avec des étiquettes

Au lieu de numéros, le tableau associatif utilise des clés nommées que tu choisis. Plus lisible pour des données structurées.

Comme une fiche d'identité : chaque info a un label (nom, prénom, âge) plutôt qu'un numéro mystérieux.

PHP
$personne = [
    "nom"    => "Dupont",
    "prenom" => "Marie",
    "age"    => 28,
    "ville"  => "Paris",
];

// On accède à chaque valeur par sa clé
echo $personne["prenom"]; // Marie
echo $personne["age"];    // 28

// Ajouter une nouvelle clé
$personne["email"] = "marie@exemple.fr";

=> sépare la clé de la valeur. "nom" => "Dupont" = "la case 'nom' contient 'Dupont'".

Tableau de tableaux — les données structurées

Un tableau peut contenir d'autres tableaux. C'est un tableau multidimensionnel. Comme un tableau Excel. C'est exactement le format renvoyé par une base de données.

PHP
$produits = [
    ["nom" => "T-shirt", "prix" => 19.99, "stock" => 50],
    ["nom" => "Jean",    "prix" => 49.90, "stock" => 12],
    ["nom" => "Veste",   "prix" => 89.00, "stock" => 5],
];

// Parcourir avec foreach pour afficher chaque produit
foreach ($produits as $produit) {
    echo $produit["nom"] . " — " . $produit["prix"] . " € (stock : " . $produit["stock"] . ")";
    echo "<br>";
}
Résultat
T-shirt — 19.99 € (stock : 50)
Jean — 49.9 € (stock : 12)
Veste — 89 € (stock : 5)

À chaque tour, $produit contient un tableau pour un produit. On accède aux données avec $produit["nom"], $produit["prix"], etc.

Les fonctions essentielles sur les tableaux

PHP a plein de fonctions pour les tableaux. Les plus utiles :

PHP
$notes = [15, 8, 18, 12, 10];

count($notes);           // 5  — combien d'éléments ?
array_sum($notes);       // 63 — somme de tous les éléments
min($notes);             // 8  — la plus petite valeur
max($notes);             // 18 — la plus grande valeur
sort($notes);            // trie de la plus petite à la plus grande
rsort($notes);           // trie de la plus grande à la plus petite
in_array(18, $notes);    // true — est-ce que 18 est dans le tableau ?
array_push($notes, 20);  // ajoute 20 à la fin
array_pop($notes);       // supprime et retourne le dernier élément

// Calculer la moyenne :
$moyenne = array_sum($notes) / count($notes);
echo round($moyenne, 2); // arrondi à 2 décimales

En pratique : count() pour compter les articles d'un panier, in_array() pour vérifier l'accès, sort() pour trier les produits par prix...

Fusionner et extraire des tableaux

PHP
// array_merge — fusionner deux tableaux en un
$legumes  = ["carotte", "poireau"];
$fruits   = ["pomme", "banane"];
$aliments = array_merge($legumes, $fruits);
// ["carotte", "poireau", "pomme", "banane"]

// array_keys — récupérer toutes les clés d'un tableau associatif
$personne = ["nom" => "Marie", "age" => 28];
print_r(array_keys($personne));
// Array ( [0] => nom [1] => age )

// array_values — récupérer toutes les valeurs
print_r(array_values($personne));
// Array ( [0] => Marie [1] => 28 )
// À retenir
  • Tableau indexé : ["a", "b", "c"] — les index commencent à 0, pas 1
  • Tableau associatif : ["clé" => "valeur"] — on accède par nom, pas par numéro
  • $tab[] = "x" ajoute un élément à la fin sans préciser l'index
  • count() pour compter, in_array() pour tester si une valeur existe
  • foreach ($tab as $valeur) pour parcourir
  • foreach ($tab as $cle => $valeur) pour accéder aussi aux clés
  • Un tableau peut contenir d'autres tableaux — c'est ce qu'on reçoit souvent d'une base de données