Aller au contenu principal

Les tableaux

Notions théoriques

En PHP, un tableau est un type de données qui peut contenir plusieurs valeurs à la fois.

Il y a 2 types de tableaux en PHP, les tableaux indexés et les tableaux associatifs :

  • Dans un tableau indexé, les valeurs sont stockées dans des cases numérotées à partir de 0.

  • Dans un tableau associatif, chaque valeur est associée à une clé unique (un peu comme une étiquette).

Pour créer un tableau, on peut utiliser la fonction array() ou la syntaxe des crochets [].

Par exemple, $fruits = array("pomme", "banane", "cerise") ou $fruits = ["pomme", "banane", "cerise"] crée un tableau indexé avec trois valeurs.

Pour accéder à une valeur, on utilise son index ou sa clé entre crochets.

Par exemple, $fruits[1] donne "banane".

Synonymes de tableau utilisés en PHP
  1. Array (tableau indexé ou associatif)
  2. Collection (tableau indexé ou associatif)
  3. Liste (tableau indexé)
  4. Vecteur (tableau indexé)
  5. Dictionnaire (tableau associatif)
  6. Map (tableau associatif)

PHP n'a pas de type Liste comme dans certains autres langages, on utilise Array à la place.

Afficher le contenu d'un tableau

Pour afficher le contenu d'un tableau, on peut utiliser la fonction PHP print_r().

  • Voici un exemple de tableau :

    $fruits = array("pomme", "banane", "cerise");

    ou

    $fruits = ["pomme", "banane", "cerise"];
  • pour afficher le contenu du tableau :

    print_r($fruits); // Affiche ["pomme", "banane", "cerise"]

Ajouter un élément dans un tableau

Pour ajouter un élément dans un tableau, il suffit de saisir le nom du tableau suivi de [].

  • Voici un exemple de tableau :

    $fruits = array("pomme", "banane", "cerise");

    ou

    $fruits = ["pomme", "banane", "cerise"];
  • pour afficher le contenu du tableau :

    print_r($fruits); // Affiche ["pomme", "banane", "cerise"]
  • pour ajouter un élément "poire" à la fin du tableau :

    $fruits[] = "poire";
  • et enfin, pour afficher le nouveau contenu du tableau :

    print_r($fruits); // Affiche ["pomme", "banane", "cerise", "poire"]

Compter le nombre d'éléments

Pour compter le nombre d'éléments d'un tableau, on utilise la fonction PHP count().

Par exemple :

$fruits = array("pomme", "banane", "cerise");
$nombre = count($fruits);
print($nombre); // Affiche 3

Parcourir un tableau

Le parcours d'un tableau avec foreach en PHP est une méthode simple et efficace pour accéder à tous les éléments d'un tableau.

Voici un exemple :

  1. Création du tableau :

    $fruits = ["pomme", "banane", "cerise", "fraise", "kiwi"];
  2. Parcours du tableau avec foreach :

    foreach ($fruits as $fruit) {
    echo $fruit . "<br>";
    }
  3. Résultat affiché :

    pomme
    banane
    cerise
    fraise
    kiwi
  4. Parcours avec index : Si vous avez besoin de l'index de chaque élément, vous pouvez utiliser cette syntaxe :

    foreach ($fruits as $index => $fruit) {
    echo $index . ": " . $fruit . "<br>";
    }
  5. Résultat avec index :

    0: pomme
    1: banane
    2: cerise
    3: fraise
    4: kiwi
  6. Modification des éléments : Pour modifier les éléments pendant le parcours, utilisez une référence (&) :

    foreach ($fruits as &$fruit) {
    $fruit = strtoupper($fruit);
    }
    print_r($fruits);
  7. Résultat après modification :

    Array
    (
    [0] => POMME
    [1] => BANANE
    [2] => CERISE
    [3] => FRAISE
    [4] => KIWI
    )

Le foreach est particulièrement utile car il fonctionne avec tous les types de tableaux (indexés numériquement ou associatifs) et ne nécessite pas de connaître la taille du tableau à l'avance.

Exemple pratique

  • Création d'un tableau indexé :

    $fruits = array("pomme", "banane", "cerise");

    ou :

    $fruits = ["pomme", "banane", "cerise"];
  • Affichage du contenu du tableau, à la position 0 :

    print($fruits[0]); // Affiche "pomme"
  • Création d'un tableau associatif :

    $personne = array("nom" => "Dupont", "prénom" => "Jean", "âge" => 30); 

    ou :

    $personne = ["nom" => "Dupont", "prénom" => "Jean", "âge" => 30]; 
  • Affichage du contenu du tableau, à la clé "prénom" :

    print($personne["prénom"]); // Affiche "Jean"

Test de mémorisation/compréhension


Qu'est-ce qu'un tableau en PHP ?


Quelle est la différence entre un tableau indexé et un tableau associatif en PHP ?


Comment accède-t-on à une valeur dans un tableau en PHP ?


Comment crée-t-on un tableau en PHP ?


Quel est l'index de la première valeur dans un tableau indexé en PHP ?



TP pour réfléchir et résoudre des problèmes

Dans ce TP, vous allez travailler avec des tableaux indexés et des tableaux associatifs en PHP.

  • Dans votre répertoire "Documents" créez le répertoire tp_tableaux.
  • Dans ce répertoire créez le fichier main.php :
    <?php
    // Les tableaux en PHP
    print("Les tableaux en PHP \n\n");
  • Testez le fonctionnement de ce fichier :
    php main.php

1) Un tableaux indexé

  1. Créez un tableau indexé $fichiers avec les éléments "document.txt", "image.jpg" et "video.mp4".

  2. Ajoutez le fichier "musique.mp3" à la fin du tableau.

  3. Affichez le premier et le dernier élément du tableau.

Une solution pour l'exercice 1

2) Un tableau associatif

Dans un tableau associatif en PHP, chaque valeur est associée à une clé unique, un peu comme une étiquette.

Contrairement aux tableaux indexés où les valeurs sont stockées dans des cases numérotées, dans un tableau associatif, chaque valeur est accessible via une clé spécifique.

  1. Créez un tableau associatif $scores avec les clés "Alice", "Bob" et "Charlie" ayant pour valeurs respectives 85, 90 et 88.

  1. Ajoutez un nouvel élément au tableau associatif : "David" avec un score de 95.

  2. Affichez le score de "Bob".

Une solution pour l'exercice 2

3) Un tableau multidimensionnel

  1. Créez un tableau associatif $utilisateurs avec une clé "Jean" et une valeur qui est un 2ème tableau associatif.

    Contenu du 2ème tableau associatif :

    • une clé "document.txt" et une valeur "rwx"
    • une clé "classeur.xls" et une valeur "r--"

  1. Ajoutez les droits "rw-" pour le fichier "image.jpg" pour l'utilisateur "Jean".

  2. Affichez les droits de "Jean" sur "document.txt", "classeur.xls" et "image.jpg".

Une solution pour l'exercice 3

4) Utilisation de foreach

  1. En utilisant le tableau associatif $utilisateurs créé dans l'exercice précédent, parcourez chaque utilisateur et leurs droits sur les fichiers avec une boucle foreach.

  2. Pour chaque utilisateur, affichez son nom et la liste des fichiers auxquels il a accès, ainsi que les droits correspondants.

Voici ce qui va s'afficher :

Utilisateur : Jean
Fichier : document.txt, Droits : rwx
Fichier : classeur.xls, Droits : r--
Fichier : image.jpg, Droits : rw-
Une solution pour l'exercice 4