Les deux types de tableaux


Un tableau (aussi appelé array) est une variable. Mais une variable un peu spéciale.

Reprenons. Jusqu'ici vous avez travaillé avec des variables toutes simples : elles ont un nom et une valeur. Par exemple :

Code : PHP

1

2

3

4

<?php

$prenom = 'Nicole';

echo 'Bonjour ' . $prenom; // Cela affichera : Bonjour Nicole

?>



Ce qui peut se matérialiser sous la forme :

Nom

Valeur

$prenom

Nicole



Ici, nous allons voir qu'il est possible d'enregistrer de nombreuses informations dans une seule variable grâce aux tableaux. On en distingue deux types :

  • les tableaux numérotés ;
  • les tableaux associatifs.

Les tableaux numérotés



Ces tableaux sont très simples à imaginer. Regardez par exemple celui-ci, contenu de la variable $prenoms :

Clé

Valeur

0

François

1

Michel

2

Nicole

3

Véronique

4

Benoît



$prenoms est un array : c'est ce qu'on appelle une variable « tableau ». Elle n'a pas qu'une valeur, mais plusieurs (vous pouvez en mettre autant que vous voulez).

Dans un array, les valeurs sont rangées dans des « cases » différentes. Ici, nous travaillons sur un array numéroté, c'est-à-dire que chaque case est identifiée par un numéro. Ce numéro est appelé clé.

Attention ! Un array numéroté commence toujours à la case n°0 ! Ne l'oubliez jamais, ou vous risquez de faire des erreurs par la suite…


Construire un tableau numéroté



Pour créer un tableau numéroté en PHP, on utilise généralement la fonction array.

Cet exemple vous montre comment créer l'array $prenoms :

Code : PHP

1

2

3

4

<?php

// La fonction array permet de créer un array

$prenoms = array ('François', 'Michel', 'Nicole', 'Véronique', 'Benoît');

?>



L'ordre a beaucoup d'importance. Le premier élément (« François ») aura le n°0, ensuite Michel le n°1, etc.

Vous pouvez aussi créer manuellement le tableau case par case :

Code : PHP 

1

2

3

4

5

<?php

$prenoms[0] = 'François';

$prenoms[1] = 'Michel';

$prenoms[2] = 'Nicole';

?>



Si vous ne voulez pas avoir à écrire vous-mêmes le numéro de la case que vous créez, vous pouvez laisser PHP le sélectionner automatiquement en laissant les crochets vides :

Code : PHP 

1

2

3

4

5

<?php

$prenoms[] = 'François'; // Créera $prenoms[0]

$prenoms[] = 'Michel'; // Créera $prenoms[1]

$prenoms[] = 'Nicole'; // Créera $prenoms[2]

?>


Afficher un tableau numéroté



Pour afficher un élément, il faut donner sa position entre crochets après $prenoms. Cela revient à dire à PHP :

« Affiche-moi le contenu de la case n°1 de $prenoms. »

Pour faire cela en PHP, il faut écrire le nom de la variable, suivi du numéro entre crochets. Pour afficher « Michel », on doit donc écrire :

Code : PHP 

1

2

3

<?php

echo $prenoms[1];

?>



C'est tout bête du moment que vous n'oubliez pas que Michel est en seconde position et donc qu'il a le numéro 1 (étant donné qu'on commence à compter à partir de 0).

Si vous oubliez de mettre les crochets, ça ne marchera pas (ça affichera juste « Array »…). Dès que vous travaillez sur des arrays, vous êtes obligés d'utiliser les crochets pour indiquer dans quelle « case » on doit aller chercher l'information, sinon PHP ne sait pas quoi récupérer.




Les tableaux associatifs



Les tableaux associatifs fonctionnent sur le même principe, sauf qu'au lieu de numéroter les cases, on va les étiqueter en leur donnant à chacune un nom différent.

Par exemple, supposons que je veuille, dans un seul array, enregistrer les coordonnées de quelqu'un (nom, prénom, adresse, ville, etc.). Si l'array est numéroté, comment savoir que le n°0 est le nom, le n°1 le prénom, le n°2 l'adresse… ? C'est là que les tableaux associatifs deviennent utiles.

Construire un tableau associatif



Pour en créer un, on utilisera la fonction array comme tout à l'heure, mais on va mettre « l'étiquette » devant chaque information :

Code : PHP 

1

2

3

4

5

6

7

8

<?php

// On crée notre array $coordonnees

$coordonnees = array (

    'prenom' => 'François',

    'nom' => 'Dupont',

    'adresse' => '3 Rue du Paradis',

    'ville' => 'Marseille');

?>


Note importante : il n'y a ici qu'une seule instruction (un seul point-virgule). J'aurais pu tout mettre sur la même ligne, mais rien ne m'empêche de séparer ça sur plusieurs lignes pour que ce soit plus facile à lire.



Vous remarquez qu'on écrit une flèche (=>) pour dire « associé à ». Par exemple, on dit « ville » associée à « Marseille ».

Nous avons créé un tableau qui ressemble à la structure suivante :

Clé

Valeur

prenom

François

nom

Dupont

adresse

3 Rue du Paradis

ville

Marseille



Il est aussi possible de créer le tableau case par case, comme ceci :

Code : PHP 

1

2

3

4

5

6

<?php

$coordonnees['prenom'] = 'François';

$coordonnees['nom'] = 'Dupont';

$coordonnees['adresse'] = '3 Rue du Paradis';

$coordonnees['ville'] = 'Marseille';

?>


Afficher un tableau associatif



Pour afficher un élément, il suffit d'indiquer le nom de cet élément entre crochets, ainsi qu'entre guillemets ou apostrophes puisque l'étiquette du tableau associatif est un texte.

Par exemple, pour extraire la ville, on devra taper :

Code : PHP 

1

2

3

<?php

echo $coordonnees['ville'];

?>



Ce code affiche : « Marseille ».

Quand utiliser un array numéroté et quand utiliser un array associatif ?



Comme vous l'avez vu dans mes exemples, ils ne servent pas à stocker la même chose…

  • Les arrays numérotés permettent de stocker une série d'éléments du même type, comme des prénoms. Chaque élément du tableau contiendra alors un prénom.
  • Les arrays associatifs permettent de découper une donnée en plusieurs sous-éléments. Par exemple, une adresse peut être découpée en nom, prénom, nom de rue, ville…

Créé avec HelpNDoc Personal Edition: Environnement de création d'aide complet