Blog ENI : Toute la veille numérique !
Jusqu'à ce soir ! : -25€ dès 75€ sur les livres en ligne, vidéos... code FUSEE25. J'en profite !
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
  1. Livres et vidéos
  2. PHP et JavaScript
  3. Les tableaux
Extrait - PHP et JavaScript Dynamisez vos sites et applications web (avec exercices et corrigés)
Extraits du livre
PHP et JavaScript Dynamisez vos sites et applications web (avec exercices et corrigés) Revenir à la page d'achat du livre

Les tableaux

Introduction

Les tableaux représentent en quelque sorte une forme de variable, composée de plusieurs valeurs, souvent de même type.

Sans le savoir, vous avez déjà manipulé des tableaux, par exemple, une chaîne de caractères ($prenom = ’michel’;) est un tableau, vous le verrez plus en détail dans ce chapitre.

Les tableaux vont devenir très vite indispensables et il est donc très important de bien comprendre leur fonctionnement.

En PHP, on utilisera le mot-clé array pour déclarer et utiliser une structure de type tableau.

Il existe deux types de tableaux que l’on va détailler dans les pages suivantes :

  • les tableaux numériques

  • les tableaux associatifs

Les tableaux numériques

Pour vous représenter un tableau, il suffit d’imaginer une liste de valeurs, que l’on pourrait repérer à l’aide d’un indice, par exemple :

Indice

Valeur

0

Michel

1

Joséphine

2

Sidonie

3

Eliott

4

Julie

Par exemple, le prénom d’indice deux est Sidonie.

Comme on l’a vu en introduction, un tableau est une sorte de variable qui contient plusieurs valeurs. Pour déclarer un tableau en PHP, on utilise l’instruction array :


<?php 
  $prenoms = array   
("Michel","Joséphine","Sidonie","Eliott","Julie"); 
?>
 

Le tableau s’appelle $prenoms dans l’exemple ci-dessus (cette dénomination est totalement arbitraire, vous pouvez le nommez comme bon vous semble).

Les valeurs sont séparées par une virgule (,) et sont saisies entre guillemets ou apostrophes pour des valeurs de type chaîne de caractères (string), sans guillemets pour des valeurs numériques.

Ce type de tableau est appelé tableau numérique, car on peut accéder à une valeur via un indice ou une clé, la première valeur d’un tableau numérique est toujours rangée à l’indice 0 (clé ou case 0), c’est-à-dire que l’instruction :


echo $prenoms[0];        
 

Affichera :...

Les tableaux associatifs

Les tableaux associatifs fonctionnent comme les tableaux numériques, mais la clé ou l’indice n’est pas un entier numérique (0, 1, 2...) mais une étiquette unique qui permettra de référencer la case, par exemple :

Indice ou clé ou étiquette

Valeur

nom

Delaplace

prenom

Michel

age

35

cp

31000

ville

Toulouse

La même chose en tableau numérique aurait été :

Indice ou clé ou étiquette

Valeur

0

Delaplace

1

Michel

2

35

3

31000

4

Toulouse

Vous voyez très vite l’avantage du tableau associatif, pour obtenir par exemple l’âge sur le tableau numérique, il faut l’instruction suivante :


echo $tableau_num[2];
 

Alors que sur le tableau associatif, c’est plus intuitif :


echo $tableau_ass['age'];
 

L’autre différence avec les tableaux numériques réside dans la déclaration de celui-ci, on va utiliser le mot-clé array, mais de la manière suivante :


<?php 
  $tableau_ass = array ( 
     'nom' => 'Delaplace', 
     'prenom' => 'Michel', 
     'age' => '35', 
     'cp' => '31000', 
     'ville' => 'Toulouse' 
); 
?>...

Les constantes de type tableau

Depuis PHP 5.6, il est possible de déclarer un tableau de constantes comme ceci :


<?php 
  const FRUITS = array('pomme' , 'banane', 'fraise'); 
  echo FRUITS[1];         //affiche banane 
?>
 

Les constantes ne peuvent pas être redéfinies et sont accessibles globalement dans le code.

Les constantes ne commencent pas par le symbole $.

En PHP 7, on peut utiliser le mot-clé define pour définir un tableau de constantes :


<?php 
  define('FRUITS', array( 
    'pomme', 
    'banane', 
    'fraise' 
  )); 
  echo FRUITS[1]; // affiche banane 
?>
 

Parcourir un tableau

Il y a plusieurs façons de parcourir un tableau, à l’aide d’une boucle for, d’une boucle foreach ou des deux instructions print_r et var_dump.

1. La boucle for

Cette boucle est très utile avec les tableaux numériques. Comme vous l’avez vu au chapitre précédent, nous pouvons afficher toutes les valeurs d’un tableau en utilisant cette instruction comme ceci :


<?php 
  $prenoms = array   
("Michel","Josephine","Sidonie","Eliott","Julie"); 
 
  for ($i=0 ; $i<=4 ; $i++) { 
    echo $prenoms[$i].'<br>'; 
  } 
?>
 

Et cela affichera :

images/06RI02.png

La variable $i prend successivement les valeurs de 0 à 4, et affiche donc toutes les valeurs du tableau. Dans cet exemple, on parcourt cinq valeurs (0 à 4), mais comment fait-on si on ne sait pas à l’avance combien de valeurs sont contenues dans le tableau ?

Pour répondre à cette interrogation, on va utiliser la fonction count qui permet d’obtenir la taille du tableau, soit le nombre de valeurs qu’il contient :


<?php 
  $prenoms = array   
("Michel","Josephine","Sidonie","Eliott","Julie","Magali"); 
 
  for ($i=0 ; $i<count($prenoms) ; $i++) { 
    echo $prenoms[$i].'<br>'; 
  } 
?>
 

Ce qui donnera :

images/06RI02.png

Amusez-vous à redéfinir le tableau $prenoms...

Les fonctions sur les tableaux

Il est souvent très utile de vérifier si un tableau contient une valeur particulière, si une clé existe, etc. Il existe quelques fonctions qui facilitent l’utilisation des tableaux, c’est ce que l’on va voir dans les paragraphes suivants.

1. Rechercher dans un tableau

a. La fonction in_array()

Cette fonction va permettre de rechercher une valeur à l’intérieur d’un tableau. Son utilisation est simple et la fonction renvoie vrai (true) si la valeur est trouvée, faux (false) dans le cas contraire, comme suit :


<?php in_array('cle', $array); ?>
 

Exemple :


<?php 
  $prenoms = array   
("Michel","Josephine","Sidonie","Eliott","Julie","Magali"); 
 
  if (in_array('Eliot' , $prenoms)) { 
    echo "Le tableau contient Eliot";  
  } 
  else { 
    echo "Le tableau ne contient pas Eliot";  
  }?>
 

Retournera :


Le tableau ne contient pas Eliot
 

b. La fonction array_key_exist()

Comme son nom l’indique, cette fonction permet de vérifier l’existence d’une clé dans un tableau, la syntaxe est la suivante :


<?php array_key_exists('cle', $array); ?>
 

Exemple :


<?php 
  $personne = array ( 
        'nom' => 'Delaplace', 
        'prenom' => 'Michel', 
        'age' => '35', 
        'cp' => '31000', 
        'ville' => 'Toulouse' 
  ); 
 
  if (array_key_exist('prenom' , $personne)) { 
    echo "la clé PRENOM existe dans le tableau"; 
  else { 
    echo "la clé PRENOM n'existe pas dans le tableau"; 
  } 
?>
 

Affiche :


la clé PRENOM existe dans le tableau
 

On peut bien sûr stocker la valeur de retour dans une variable booléenne :


<?php 
  $personne = array ( 
        'nom' => 'Delaplace', 
       ...

Les tableaux multidimensionnels

On a vu au chapitre précédent qu’un tableau pouvait contenir des valeurs numériques, des chaînes de caractères, etc. Un tableau peut également contenir des tableaux, on parle alors de tableau à plusieurs dimensions ou tableaux multidimensionnels.

Par exemple, imaginez que vous voulez gérer un parc automobile (c’est-à-dire un ensemble de véhicules), on commencerait par définir unitairement un véhicule, en prenant comme information l’immatriculation, qui constitue un index car chaque immatriculation est unique.

On peut schématiser simplement notre parc de la façon suivante :

Clé ou index (immatriculation)

Valeurs

05 BKJ 44

Clé

Valeur

marque

Peugeot

modèle

308

couleur

Rouge

12 AZR 75

Clé

Valeur

marque

Citroën

modèle

DS

couleur

Verte

14 NBF 22

Clé

Valeur

marque

Audi

modèle

A3

couleur

Noire

On constate qu’un véhicule peut être défini par son immatriculation et par un tableau contenant les informations du véhicule (sa marque, son modèle, sa couleur, etc.).

Notre parc est donc constitué d’un tableau contenant des tableaux. Mais comment définit-on ceci en PHP ? C’est assez intuitif si vous avez bien suivi le chapitre précédent, on gère successivement les clés, par exemple :...