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.

Comment 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 [].

Par exemple :

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

Comment afficher le contenu d'un tableau ?

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

Par exemple :

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

Comment compter le nombre d'éléments d'un tableau ?

Pour afficher 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

Exemple pratique

// Création d'un tableau indexé
$fruits = array("pomme", "banane", "cerise");
print($fruits[0]); // Affiche "pomme"

// Création d'un tableau associatif
$personne = array("nom" => "Dupont", "prénom" => "Jean", "âge" => 30);
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.

Corrigé de l'exercice 1
print("1) Un tableaux indexé \n\n");

// Création du tableau indexé
$fichiers = ["document.txt", "image.jpg", "video.mp4"];

// Ajout de "musique.mp3"
$fichiers[] = "musique.mp3";

// Affichage du premier et du dernier élément
print("Affichage du premier élément : ");
print($fichiers[0] . " \n"); // Affiche "document.txt"
print("Affichage du dernier élément : ");
print($fichiers[count($fichiers) - 1] . " \n"); // Affiche "musique.mp3"

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.

Exercice :

  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".

Corrigé de l'exercice 2
print("\n2) Un tableau associatif \n\n");

// Création du tableau associatif
$scores = [
"Alice" => 85,
"Bob" => 90,
"Charlie" => 88,
];

// Ajout du score de David
$scores["David"] = 95;

// Affichage du score de Bob
print("Le score de Bob est : " . $scores["Bob"] . "\n");

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".

Corrigé de l'exercice 3
print("\n3) Un tableaux associatif \n\n");

// Création du tableau associatif
$utilisateurs = ["Jean" => ["document.txt" => "rwx", "classeur.xls" => "r--"]];

// Ajout des droits de 'Jean' sur 'image.jpg'
$utilisateurs["Jean"]["image.jpg"] = "rw-";

// Affichage des droits de Jean sur 'document.txt' et 'image.jpg'

print("Affichage des droits de Jean sur 'document.txt' : ");
print($utilisateurs["Jean"]["document.txt"] . " \n"); // Affiche "rwx"

print("Affichage des droits de Jean sur 'classeur.xls' : ");
print($utilisateurs["Jean"]["classeur.xls"] . " \n"); // Affiche "r--"

print("Affichage des droits de Jean sur 'image.jpg' : ");
print($utilisateurs["Jean"]["image.jpg"] . " \n"); // Affiche "rw-"

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-
Corrigé de l'exercice 4
print("\n4) Utilisation de foreach \n\n");

// Parcours du tableau d'utilisateurs
foreach ($utilisateurs as $nom => $fichiers) {
// Affichage du nom de l'utilisateur
print("Utilisateur : " . $nom . "\n");

// Parcours des fichiers de l'utilisateur
foreach ($fichiers as $nomFichier => $droits) {
// Affichage du nom du fichier et des droits
print("Fichier : " . $nomFichier . ", Droits : " . $droits . "\n");
}
}