Les tableaux

Les tableaux ressemblent aux tables de hashage (tableaux associatifs) et aux tableaux indexés (vecteurs).

Tableaux à une dimension

PHP supporte les tableaux scalaires et les tableaux associatifs. En fait, il n'y a aucune différence entre les deux. Vous pouvez créer un tableau en utilisant les fonctions list() ou array(), ou bien en affectant explicitement chacune des valeurs.


<?php
$a[0] = "abc";
$a[1] = "def";
$b["foo"] = 13;
?>
      

Vous pouvez aussi créer un tableau en ajoutant simplement les valeurs à ce tableau.


<?php
$a[] = "Bonjour"; // $a[2] == "Bonjour";
$a[] = "Monde"; // $a[3] == "Monde";
?>
      

Un tableau peut être trié en utilisant les fonctions asort(), arsort(), ksort(), rsort(), sort(), uasort(), usort(), ou uksort() en fonction du type de classement que vous voulez.

Vous pouvez compter le nombre d'éléments qu'il y a dans un tableau en utilisant la fonction count().

Vous pouvez vous déplacer à l'intérieur d'un tableau en utilisant les fonctions next() et prev(). Un autre moyen de se déplacer dans un tableau est d'utiliser la fonction each().

Tableaux à plusieurs dimensions

Les tableaux à plusieurs dimensions sont extrêmement simples. Pour chaque dimension du tableau, vous ajouter une nouvelle [clef] à la fin:


<?php
$a[1]      = $f;               # tableau à une dimension
$a["foo"]  = $f;
$a[1][0]     = $f;             # tableau à deux dimensions
$a["foo"][2] = $f;             # vous pouvez mélanger les indices associatifs et numériques
$a[3]["bar"] = $f;             # vous pouvez mélanger les indices associatifs et numériques
$a["foo"][4]["bar"][0] = $f;   # tableau à quatre dimensions
?>
      

En PHP 3 il n'est pas possible de référencer un tableau à l'intérieur d'une chaîne. Par exemple, ceci ne fonctionne pas :


<?php
$a[3]['bar'] = 'Bob';
echo "Cela ne marche pas : $a[3][bar]";
?>
      

En PHP 3, l'exemple ci dessu va afficher : Cela ne marche pas : Array[bar]. L'opérateur de concaténation, peut être utilisé pour corriger cela :


<?php
$a[3]['bar'] = 'Bob';
echo "Cela ne marche pas : " . $a[3][bar];
?>
      

En PHP 4, cependant, le problème peut être contourné en entourant le tableau par des accolades :


<?php
$a[3]['bar'] = 'Bob';
echo "Cela marche  : {$a[3][bar]}";
?>
      

Vous pouvez remplir un tableau à plusieurs dimensions par de nombreux moyens mais la méthode la plus simple à comprendre est l'utilisation de la fonction array(). Les deux exemples suivants montre comment remplir un tableau à une dimension:


<?php
# Exemple 1:
$a["couleur"]	= "rouge";
$a["saveur"]	= "sucrée";
$a["forme"]		= "rond";
$a["nom"]		= "pomme";
$a[3]			= 4;
# Exemple 2:
$a = array(
     "couleur" => "rouge",
     "saveur" => "sucrée",
     "forme" => "rond",
     "nom"  => "pomme",
     3       => 4
);
?>
      

La fonction array() peut être emboîtée pour remplir un tableau à plusieurs dimensions :


<?php
$a = array(
     "pomme"  => array(
          "couleur"  => "rouge",
          "saveur"  => "sucrée",
          "forme"  => "rond"
     ),
     "orange"  => array(
          "couleur"  => "orange",
          "saveur"  => "amère",
          "forme"  => "rond"
     ),
     "banane"  => array(
          "couleur"  => "jaune",
          "saveur"  => "paste-y",
          "forme"  => "bananoïde"
     )
);
echo $a["pomme"]["saveur"];    # va afficher "sucrée"
?>