Les Tableaux

Les tableaux servent à stocker plusieurs valeurs dans une seule variable.

Imagine une boîte qui peut contenir plusieurs objets :

Sans tableau, il faudrait créer une variable pour chaque valeur.

$fruit1 = "Pomme";
$fruit2 = "Banane";
$fruit3 = "Orange";

Avec un tableau, tout est regroupé ensemble.

1. Tableau simple

Un tableau simple contient plusieurs valeurs dans un ordre précis.

$fruits = ["Pomme", "Banane", "Orange"];

Comprendre la syntaxe

Les index commencent toujours à 0.

Index Valeur
0 Pomme
1 Banane
2 Orange

2. Accéder à une valeur

Pour récupérer une valeur précise, on utilise son index.

echo $fruits[0];

Ici :

Résultat tableau simple

> Premier fruit : Pomme

> Deuxième fruit : Banane

> Troisième fruit : Orange

3. Ajouter une valeur

On peut ajouter un nouvel élément dans le tableau.

$fruits[] = "Fraise";

Résultat ajout

> Fruit : Pomme

> Fruit : Banane

> Fruit : Orange

> Fruit : Fraise

4. Afficher un tableau complet

La fonction print_r() permet d’afficher tout le contenu du tableau.

print_r($fruits);

Cette fonction est très utile pendant le développement pour voir rapidement les données.

Résultat print_r()


Array
(
    [0] => Pomme
    [1] => Banane
    [2] => Orange
    [3] => Fraise
)

            

5. Parcourir un tableau avec foreach

La boucle foreach sert à lire chaque valeur du tableau automatiquement.

foreach ($fruits as $fruit) {

    echo $fruit;

}

PHP prend chaque élément un par un.

Résultat foreach

> Pomme

> Banane

> Orange

> Fraise

6. Les tableaux associatifs

Un tableau associatif utilise des clés personnalisées au lieu d’index numériques.

$personne = [

    "nom" => "Fred",
    "age" => 33,
    "ville" => "Montréal"

];

Ici :

Résultat tableau associatif

> Nom : Fred

> Âge : 33

> Ville : Montréal

7. Parcourir un tableau associatif

foreach peut aussi récupérer :

foreach ($personne as $cle => $valeur) {

    echo $cle . " : " . $valeur;

}

Résultat parcours associatif

> nom : Fred

> age : 33

> ville : Montréal

8. Les tableaux imbriqués

Un tableau imbriqué est un tableau qui contient d’autres tableaux.

En programmation, c’est très utilisé pour organiser des données plus complexes.

Exemple :

$users = [

    ["Fred", 33],
    ["Marie", 25],
    ["Alex", 19]

];

Ici :

Résultat tableau imbriqué


> Tableau #0

Nom : Fred

Âge : 33



> Tableau #1

Nom : Marie

Âge : 25



> Tableau #2

Nom : Alex

Âge : 19


9. Parcourir les tableaux imbriqués avec foreach

Une fois le tableau imbriqué créé, on peut le parcourir avec plusieurs boucles foreach.

Le principe :

10. Parcourir des tableaux séparés regroupés

Première méthode :
créer plusieurs tableaux séparés puis les regrouper.

$phpMenu = [

    "Home" => "/index.php",
    "Les Boucles" => "/php/boucle.php"

];

$htmlMenu = [

    "Home" => "/index.php",
    "Introduction HTML" => "/html/intro.php"

];

$HeaderMenus = [

    "php" => $phpMenu,
    "html" => $htmlMenu

];

Ici :

Parcourir le tableau principal

foreach ($HeaderMenus as $type => $menu) {

    echo $type;

}

Résultat :

php
html

Ici :

Résultat boucle principale

> Type : php

> Type : html

11. Parcourir les sous-tableaux

Maintenant, on veut parcourir les liens contenus dans chaque menu.

Il faut donc une deuxième boucle foreach.

foreach ($HeaderMenus as $type => $menu) {

    foreach ($menu as $nom => $lien) {

        echo $nom;

    }

}

Comprendre

Exemple concret des variables

Dans cette boucle, chaque variable prend une valeur précise :

Exemple quand $type = "php" :

$menu = [
    "Home" => "/index.php",
    "Les Boucles" => "/php/boucle.php",
    "Les Conditions" => "/php/condition.php"
];

$nom = "Home";
$lien = "/index.php";

Résultat double foreach


> MENU : php

- Home = /index.php

- Les Boucles = /php/boucle.php

- Les Conditions = /php/condition.php



> MENU : html

- Home = /index.php

- Introduction HTML = /html/intro.php


12. Même résultat avec tableau directement imbriqué

Deuxième méthode :
écrire directement tous les sous-tableaux dans le tableau principal.

$HeaderMenus = [

    "php" => [

        "Home" => "/index.php",
        "Les Boucles" => "/php/boucle.php"

    ],

    "html" => [

        "Home" => "/index.php",
        "Introduction HTML" => "/html/intro.php"

    ]

];

La structure change un peu...

Mais les boucles restent exactement les mêmes.

foreach ($HeaderMenus as $type => $menu) {

    foreach ($menu as $nom => $lien) {

        echo $nom;

    }

}

Parce que dans les deux cas, PHP voit exactement la même structure finale.

13. Exemple réel : créer automatiquement un menu HTML

Maintenant qu’on sait parcourir les tableaux, on peut générer automatiquement un menu HTML.

<ul>

<?php

foreach ($HeaderMenus["php"] as $nom => $lien) {

    echo '<li>
            <a href="' . $lien . '">' . $nom . '</a>
          </li>';

}

?>

</ul>

PHP va automatiquement créer :

C’est exactement ce qu’on fait dans les vrais projets.

14. Accéder à un tableau dans un tableau

Pour accéder à une valeur précise, on utilise plusieurs index.

echo $users[0][0];

Comprendre

Résultat :

Fred

Accès tableau imbriqué

> Nom : Fred

> Âge : 33

15. Parcourir un tableau de tableaux

Pour parcourir un tableau qui contient d’autres tableaux, on utilise souvent plusieurs boucles foreach.

foreach ($users as $user) {

    foreach ($user as $value) {

        echo $value;

    }

}

La première boucle parcourt les utilisateurs.

La deuxième boucle parcourt les valeurs de chaque utilisateur.

Résultat parcours multiple

> Utilisateur :

- Fred

- 33

> Utilisateur :

- Marie

- 25

> Utilisateur :

- Alex

- 19

16. Tableau associatif avec tableaux imbriqués

Les tableaux peuvent aussi mélanger :

$personne = [

    "nom" => "Fred",

    "langages" => [
        "PHP",
        "JavaScript",
        "Python"
    ]

];

Résultat associatif imbriqué

> Nom : Fred

> Langage : PHP

> Langage : JavaScript

> Langage : Python

17. Tableau de tableau de tableau

Oui 😅 Un tableau peut contenir des tableaux… qui contiennent encore des tableaux.

C’est souvent utilisé dans :

$ecole = [

    "Classe1" => [

        [
            "nom" => "Fred",
            "age" => 33
        ],

        [
            "nom" => "Marie",
            "age" => 25
        ]

    ]

];

Pour parcourir ce genre de structure, il faut plusieurs boucles.

foreach ($ecole as $classe) {

    foreach ($classe as $eleve) {

        echo $eleve["nom"];

    }

}

Résultat tableau profond

> Élève : Fred

> Âge : 33

> Élève : Marie

> Âge : 25

18. Bonnes pratiques

Quand les tableaux deviennent très gros :

Les tableaux sont partout en PHP :

Résumé rapide

Type Description
Tableau simple Liste de valeurs avec index numériques
Tableau associatif Liste avec clés personnalisées
foreach Parcourir automatiquement le tableau
print_r() Afficher le contenu complet