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.
$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 :
// 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.
$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.
$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>";
}
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 :
$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
// 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 )
- 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'indexcount()pour compter,in_array()pour tester si une valeur existeforeach ($tab as $valeur)pour parcourirforeach ($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