Introduction

L'objectif de cet article est de vous présenter les tableaux en PHP. Nous verrons la façon de les déclarer et de leur affecter des variables scalaires.

Les tableaux de scalaires

Les tableaux sont des variables qui stockent les données sous forme de liste. Pour créer un tableau de scalaire, on utilise la fonction array(). Le contenu du tableau peut être affecter dès la déclaration ou peut être ajouter par la suite.

$chiffres = array(9,5,6,2);
$fruits = array("pomme","banane","orange");
$tableau=(
1,
"toto",
4) ;   # équivalent à $tableau =(1,"toto",4) ;
Un élément du tableau se retrouve par le nom du tableau précédé du signe $ et suivi des caractères [ et ]. Le premier élément est indexé par le chiffre 0. Ainsi on peut dire à partir de l'exemple précédent que $chiffres[3] est égal à 6.

$legumes = array();
$legumes[0] = "tomate";
$legume[1] = "carotte";
$legume[] = "melon"; // equivaut à $legume[2] = "melon"
$legume[] .= "choux"; // equivaut à $legume[3] = "choux"
Ici, le tableau $legume contient 4 elements: "tomate", "carotte", "melon", "choux".

Remarque :
A partir de PHP4, on peut utiliser la fonction array_push() pour ajouter des éléments dans un tableau :

$animaux = array("lapin", "chat");
array_push($animaux, "chien", "loup");
// Maintenant $animaux = array("lapin", "chat", "chien", "loup");
Attention, cette fonction n'est pas utilisable avec PHP3 mais peu être créée assez facilement (Voir Leçon 4 : Fonctions pop, push, ...)

Les tableaux associatifs de scalaires

PHP supporte également les tableaux associatifs de scalaires. Un tableau associatif est un tableau dont l'index est une chaîne de caractère au lieu d'un nombre. Il se déclare comme un tableau traditionnel, la distinction se fait lors de l'affectation.

$legumes = array();
$legumes["tomate"] = "rouge";
$legumes["carotte"] = "orange";
On peut aussi construire un tableau de la façon suivante :

$a = array(     
"color" => "red",     
"taste" => "sweet",
"shape" => "round",     
"name"  => "apple",     
3       => 4
);
Les tableaux multidimensonnels

Jusqu'à présent, nous avons vu des exemples de tableaux à une seule dimension.

$a[1]      = $f;               
$a["foo"]  = $f;   
PHP permet aussi de créer des tableaux multidimensionnels.

$a[1][0]     = $f;             # 2 dimensions
$a["foo"][2] = $f;             # 2 dimensions avec des index numeriques et associatifs
$a["foo"][4]["bar"][0] = $f;   # 4 dimensions!      
On peut creer un tableau multidimensionnel à partir d'autres tableaux.

$a = array(
     "apple"  => array(
          "color"  => "red",
          "taste"  => "sweet",
          "shape"  => "round"     ),

     "orange"  => array(
          "color"  => "orange",
          "taste"  => "sweet",
          "shape"  => "round"     ),

     "banana"  => array(
          "color"  => "yellow",
          "taste"  => "paste-y",
          "shape"  => "banana-shaped"     )
);
Dans cet exemple $a["apple"]["taste"] vaut "sweet".

Les autres types de tableaux

List()

List construit un tableau temporaire à partir des variables scalaires passées en argument. Il est utilisé fréquemment pour affecter une liste de variable en une seule opération.

$chaine = "toto-titi";
list($a,$b) = split("-",$chaine);
//$a vaut toto et $b vaut titi
Dans cet exemple, la chaîne de caractères $chaine est découpée au niveau du caractère du "-". Les 2 chaînes obtenues sont placées dans $a et $b. $a vaut donc "toto" et $b vaut "titi".

Autre exemple:
$LETTERS = array("A","B","C","D","E");
while(list($KEY,$VALUE) = each($LETTERS)) {
        echo "<BR>$KEY : $VALUE";
}
C'est une méthode simple pour afficher le contenu d'un tableau.

Compact()

La fonction compact() permet de créer un tableau associatif à partir de variables déjà existantes. Le tableau ainsi créé aura pour index le nom des variables. Attention, cette fonction n'est valable qu'a partir de PHP4.

$fruit1 = "fraise";
$fruit2 = "pomme";
$fruit3 = "banane";
$result = compact("fruit1", "fruit2", "fruit3");
Cet exemple équivaut à la commande :

$result = array("fruit1" => "fraise", "fruit2" => "pomme", "fruit3" => "banane"). 
Consulter le lien