Une variable de type tableau peut être définie explicitement grâce à la fonction array ou implicitement en utilisant une notation à crochets ([])
1. Notation à Crochets
Une variable utilisée pour la première fois avec une notation de la forme $variable[...],
est automatiquement crée avec le type tableau
La même opération éffectuée sur une variable déjà définie, avec un type scalaire, provoque un message d'erreur.
Le contenu d'un tableau peut être ainsi défini par plusieurs affectations du type $tableau[...] = valeur
Avec une affectation du type $tableau[...] = valeur, PHP recherche le plus grand indice entier utilisé et associe la valeur à l'indice immédiatement supérieur. Si le tableau est vide, l'élément est placé à l'indice 0.
Avec une affectation du type $tableau[clé] = valeur, PHP associe la
valeur
à la clé indiquée (qui peut être de type entier
ou de type chaîne)
Les deux notations peuvent être mélangées dans une séquence d'affectation
Exemple:
| <?php $nombre[] = "zéro"; //=> indice 0 $nombre[] = "un"; //=> indice max (0) +1 = 1 $nombre[] = "deux"; //=> indice max (1) +1 = 2 $nombre[] = "trois"; //=> indice max (2) +1 = 3 $nombre[5] = "cinq"; //=> indice 5 $nombre["un"] = 1; //=> indice "un" $nombre[] = "sept"; //=> indice max (6) +1 = 7 $nombre[-1] = "moins un"; //=> -1 ?> |
Résultat de la commande PHP:
Clé/Indice |
Valeur |
| 0 | zéro |
| 1 | un |
| 2 | deux |
| 3 | trois |
| 5 | cinq |
| 6 | six |
| un | 1 |
| 7 | sept |
| -1 | moins un |
Ces notations peuvent être utilisées pour construire un tableau multidimentionnel, sous la forme $tableau[...] [...] = valeur. La première notation permet de stocker un tableau dans un emplacment d'un autre tableau, et la deuxième notation, de stocker une valeur directement dans un emplacment situé à l'intérieur d'un autre tableau.
Exemple:
| <?php // première méthode // création d'un tableau contenant les villes de France $villes_france[] = "Paris"; $villes_france[] = "Lyon"; $villes_france[] = "Nantes"; // stockage des ville sde France dans le tableau des villes $villes["France"] = $villes_france; // idem avec les villes d'Italie $villes_italie[] = "Rome"; $villes_italie[] = "Venise"; $villes["Italie"] = $villes_italie; ?> |
| <?php // deuxième méthode // stockage direct des villes dans le tableau // -pour la France $villes["France"] [] = "Paris"; $villes["France"] [] = "Lyon"; $villes["France"] [] = "Nantes"; // -pour l'Italie $villes["Italie"] [] = "Rome"; $villes["Italie"] [] = "Venise"; ?> |
Résultat dans les deux cas
Clé/Indice |
Valeur |
|
| FRANCE | Clé/Indice |
Valeur |
| 0 | Paris | |
| 1 | Lyon | |
| 2 | Nantes | |
| ITALIE | Clé/Indice |
Valeur |
| 0 | Rome | |
| 1 | Venise | |
2. La fonction array
Elle permet de créer un tableau à partir d'une liste d'éléments
Syntaxe
tableau array([mixte valeur[, ...]])
ou
tableau array([{chaîne / entier} clé => mixte valeur[, ...]])
valeur élément du tableau
clé valeur de la clé.
Dans la première syntaxe, les clés/indices ne sont pas spécifiées et c'est un tableau numérique à indices commencant à 0 qui est créé: le premier argument de la fonction étant stocké à l'indice 0, le deuxième à l'indice 1, etc.
Dans la deuxième syntaxe, l'indice ou la clé sont spécifiés soit par un entier, soit par une chaîne; et une valeur lui est associé par l'opérateur =>.
Les deux syntaxes peuvent être mélangées. Dans ce cas, lorsque l'indice ou la clé n'est pas spécifié(e), PHP recherche le plus grand indice entier utilisé et associe la valeur à l'indice illédiatement supérieur; s'il n'existe aucun indice entie, l'élément est placé à l'indice 0.
La foction array, appelée sans argument, crée un tableau vide.
Exemple:
| <?php $nombres = array("zéro","un","deux","trois",5 => "cinq","six","un" => 1,"sept",-1 => "moins un"); ?> |
Résultat de la commande:
| Clé/Indice | Valeur |
| 0 | zéro |
| 1 | un |
| 2 | deux |
| 3 | trois |
| 5 | cinq |
| 6 | six |
| un | 1 |
| 7 | sept |
| -1 | moins un |
La fonction array accepte en argument les données de type tableau (soit une variable, soit un appel imbriqué à array), ce qui permet de construire un tableau multidimensionnel.
Exemple:
| <?php // première méthode // création d'un tableau contenant les villes de France $villes_france = array("Paris","Lyon","Nantes"); // idem avec les villes d'Italie $villes_italie = array("Rome","Venise"); // stockage des 2 tableaux dans le tableau des villes $villes = array("FRANCE" => $villes_france,"ITALIE" => $villes_italie); ?> |
| <?php // deuxième méthode // création par imbrication des appels à array $villes = array("FRANCE" => array("Paris","Lyon","Nantes"),"ITALIE" => array("Rome","Venise")); ?> |
Résultat dans les deux cas
Clé/Indice |
Valeur |
|
| FRANCE | Clé/Indice |
Valeur |
| 0 | Paris | |
| 1 | Lyon | |
| 2 | Nantes | |
| ITALIE | Clé/Indice |
Valeur |
| 0 | Rome | |
| 1 | Venise | |
3. Manipulation
Acceder à un élément individuel du tableau
La notation à crochets est utilisée pour accéder, en lecture ou en écriture,
à un élément individuel du tableau:
- $tableau[i] permet d'accéder à l'élément d'indice i du tableau (cas du
tableau numérique, i étant un entier.)
- $tableau["x"] permet d'accéder à l'élément de clé "x" du tableau (cas du
tableau associatif, "x" étant une chaîne)
- $tableau[] permet d'accéder, en écriture uniquement, à un nouvel élément
du tableau qui se verra affecter un iondice entier immédiatement supérieur
au plus grand indice entier existant dans le tableau (0 s'il n'y en a pas)