Skip to content

Tableaux associatifs ​

Objectifs pédagogiques ​

  • Déclarer et manipuler des tableaux associatifs en PHP.
  • Accéder aux valeurs par clé.
  • Créer des structures de données imbriquées (multi-niveaux).
  • Trier des tableaux associatifs.

Introduction ​

Les tableaux associatifs permettent d'organiser des données en couples clé/valeur.
Contrairement aux tableaux indexés numériquement, on accède ici aux éléments à l’aide de leur nom de clé.

Déclaration simple ​

php
<?php

$user = [
  "firstName" => "Alice",
  "lastName" => "Durand",
  "age" => 30
];

Accès aux valeurs :

php
echo $user["firstName"]; // Alice

Boucle foreach sur un tableau associatif ​

php
foreach ($user as $key => $value) {
  echo "$key : $value<br>";
}

Affiche :

firstName : Alice
lastName : Durand
age : 30

Tableaux associatifs multi-niveaux ​

Il est possible de créer des structures plus complexes :

php
$tasks = [
  [
    "title" => "Apprendre PHP",
    "done" => true
  ],
  [
    "title" => "Faire les courses",
    "done" => false
  ]
];

Accès à une valeur imbriquée :

php
echo $tasks[1]["title"]; // Faire les courses

Itération sur une structure imbriquée ​

php
foreach ($tasks as $task) {
  echo $task["title"];
  echo $task["done"] ? " (terminée)" : " (en cours)";
  echo "<br>";
}

Trier un tableau associatif ​

PHP propose plusieurs fonctions pour trier les tableaux, mais attention : elles modifient le tableau original (par référence), sauf si on utilise une copie manuelle ou des fonctions personnalisées.

usort() avec une fonction de comparaison ​

Pour trier un tableau associatif selon une clé (title, done, etc.), on utilise usort() avec une fonction anonyme :

php
$tasks = [
  ['title' => 'Lire', 'done' => false],
  ['title' => 'Acheter du pain', 'done' => true],
  ['title' => 'Coder', 'done' => false],
];

usort($tasks, function ($a, $b) {
  return $a['title'] <=> $b['title'];
});

Tri croissant ou décroissant ​

Utilise <=> pour un tri croissant, inverse simplement l’ordre pour un tri décroissant :

php
// décroissant
usort($tasks, function ($a, $b) {
  return $b['title'] <=> $a['title'];
});

À savoir ​

  • usort() ne conserve pas les clés d’origine.
  • Il modifie directement le tableau (pas de copie).
  • Le tri est case-sensitive par défaut.

Exercice pratique ​

  1. Créer un tableau $user avec les clés firstName, lastName, email.
  2. Afficher chaque clé et valeur avec une boucle foreach.
  3. Créer un tableau $tasks contenant plusieurs tâches avec les clés title et done.
  4. Afficher la liste des tâches dans une liste HTML.
  5. Bonus : trier les tâches par title avant affichage.