Les tableaux en PHP : explication

Les tableaux en PHP

PHP propose une autre façon de grouper et de manipuler les données: les tableaux. Il y a deux types de tableaux: les tableaux à index numériques et les tableaux associatifs. Ces deux types de tableau ont chacun leur syntaxe de déclaration.

Les tableaux à index numériques : array

Il s'agit d'une simple liste d'éléments. Pour les créer, on emploi le mot clé array(), et on sépare les élément par des virgules. Dans la liste, chaque élément est repéré par un numéro unique. Ce numéro est appelé index et est attribué automatiquement suivant les ordres.

Pour avoir accès à la valeur de chaque élément, on met la variable tableaux suivi de l'indice de l'élément mis entre crochet. Lors de la déclaration d'un tableau, il n'est pas nécessaire d'indiquer leur taille. Ceci est géré par PHP. Dans un tableau indexé numériquement le premier indice est par défaut 0.

<?php
$etudiant = array("Larah", "Sebastian", "Kevin", "Audile", "Rodrigue");
echo $etudiant[0].'<br>';
echo $etudiant[1].'<br>';
echo $etudiant[2].'<br>';
echo $etudiant[3].'<br>';
echo $etudiant[4].'<br>';
?>

 

Boucle, Tableau et fonction count

La fonction count permet d'avoir le nombre d'éléments que contient un tableau. En faisant un peu de révision sur les boucles, on peut avoir un code plus souple à partir du même exemple :

<?php

$etudiant = array("Larah", "Sebastian", "Kevin", "Audile", "Rodrigue");
for($i = 0;$i <= count($etudiant); $i++)
{
  echo $etudiant[$i] . "<br />";
}
?>

 

Les tableaux associatifs en PHP

Lors de la définition d'un tableau associatif, on indique nous même les indices du tableau. Dans la mesure où l'on est libre de les spécifier nous même, les indices peuvent être non seulement des nombres mais aussi des textes. Dans ce cas on parle de 'clé'. Ce type de tableau est très pratique dans le cas où l'on s'intéresse à la signification des valeurs contenues.

Toujours à l'aide du mot clé array, la définition d'un tableau associatif a la syntaxe suivante :

$tableau= array(
cle1=>valeur1 ,
cle2=>valeur2 ,
...);

 

On sépare donc les différentes clés valeur par des virgules. Pour accéder à un élément du tableau, on peut faire comme précédemment en indiquant la valeur de la clé comme indice. Voyons tout cela dans un exemple plus concret :

<?php
$personne = array(
"prenom" => "Jessy",
"nom" => "Brown",
"telephone" => "000011111",
);

//affichage de l'élément nom
echo $personne['nom'];
?>

 

Afficher tous les éléments d'un tableau : foreach

Si on veut afficher tous les éléments du tableau, en affichant chaque clé et chaque valeur, on peut utiliser l'instruction foreach comme ceci :

<?php

$personne = array(
"prenom" => "Jessy",
"nom" => "Brown",
"telephone" => "000011111",
);

foreach ($personne as $key => $value) {

  echo "Clé: ". $key . ", Valeur : ". $value . "<br/ >n";

}

?>

 

PHP et tableaux multidimensionnels

Dans notre exemple, on a eu à gérer un tableau avec une seule personne. Vous imaginez peut être un tableau de plusieurs personnes, dont chaque personne a son prénom, nom et téléphone. Une bonne idée mais comment faire ?

Pour cela, il faut faire ce que l'appelle un tableau multidimensionnel. Pour faire plus simple, nous nous limiterons aux tableaux à deux dimensions sachant qu'on peut en faire à plusieurs dimensions. Définissons alors des personnes avec chacun leur numéro, nom , prenom et telephone.

Après, on peut accéder à leur valeur individuellement (par exemple on veut juste avoir le prénom de la première personne).

<?php

$personnes = array(

1 => array('prenom' => 'Jessy', 'nom' => 'Brown', 'telephone' => '00001111'),

2 => array('prenom' => 'Sharon', 'nom' => 'Dain', 'telephone' => '00221111'),
3 => array('prenom' => 'Marta', 'nom' => 'Blanca', 'telephone' => '003311111')
);
echo $personnes[1]['prenom']; //Jessy
?>

 

En utilisant l'instruction foreach , on aura :

<?php

$personnes = array(

1 => array('prenom' => 'Jessy', 'nom' => 'Brown', 'telephone' => '00001111'),

2 => array('prenom' => 'Sharon', 'nom' => 'Dain', 'telephone' => '00221111'),
3 => array('prenom' => 'Marta', 'nom' => 'Blanca', 'telephone' => '003311111')
);

foreach($personnes as $cle1 => $valeur1)
{

  echo "personne n°:" . $cle1 . "<br />";

    foreach ($valeur1 as $cle2=>$valeur2)

    {
   &nbsp  echo "Clé : ".$cle2 .", Valeur: " . $valeur2 . "<br />n";
    }

}
?>

 

A propos de l'auteur

Nicolas Galle

Nicolas Galle est développeur web sénior pour l'agence SEO Aseox.