Dépannage informatique à domicile NCT Micro
  Cliquez ici pour vous abonner à ce flux RSS  

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)