< PHP
fin de la boite de navigation du chapitre

Les tableaux

Un tableau est une collection d'objet. En PHP, ces objets n'ont pas forcément le même type (cohabitation entre des entiers, des chaines…). Chaque objet est identifié par une clé (indice).

Tableau itératifs

Les clés du tableaux sont des nombres. Par défaut, le premier indice est 0.

Exemple
$tab = array('val1', 'val2', 'val3');    // $tab[0] vaut val1 /-/ $tab[1] vaut val2 /-/ etc.

for($i = 0; $i<2; $i++)
  echo $tab[$i];
Fin de l'exemple

Ce code affichera : val1val2.

En PHP, on peut aussi directement affecter des indices du tableau, comme suit :

Principe
$tab[0] = 1;
$tab[99] = 3;
Fin du principe

Notez que les indices ne sont pas typés (on pourra indifféremment utiliser $tab[1] et $tab['1']).

Tableaux associatifs

Ils fonctionnent de la même manière que les tableaux itératifs, sauf que l'utilisateur en choisit la clé. À chaque clé correspond une valeur (injection).

Voici un exemple de déclaration :

Exemple
$tab = array('cle1' => 'val1', 'cle2' => 'val2', 'cle3' => 'val3');
 
print $tab['cle2'];   //affichera: val2

//parcours du tableau en boucle
foreach($tab as $key=>$value)
 print $key." : ".$value.". ";
Fin de l'exemple

Résultat : cle1 : val1. cle2 : val2. cle3 : val3. .

Pour ne garder que les valeurs on peut utiliser impode(), qui convertit un tableau en chaine avec séparateur :

 print implode(". ", $tab).". ";

Résultat : val1. val2. val3. .

Fonctions usuelles sur les tableaux

  • count : cette fonction renvoie le nombre d'éléments présent dans le tableau.
Principe
$tab = array(1,2,3,4);
print count($tab); //affiche 4
Fin du principe
  • current : affiche la valeur d’un élément de tableau.
  • key : affiche la clé d’un élément de tableau.

Tableaux multi-dimensionnels

La clé d’un tableau peut pointer sur un second tableau créant ainsi un tableau multi-dimensionnel.

Principe
$indiv[] = array(
    'nom' => 'Hubert', 
    'poste' => 'Gérant', 
    'Email' => 'hubert@test.com', 
    'idBureau' => 1
);

$indiv[] = array(
    'nom' => 'Jean', 
    'poste' => 'Réceptionniste', 
    'Email' => 'reception@test.com', 
    'idBureau' => 1
);

$indiv[] = array(
    'nom' => 'Amélie', 
    'poste' => 'Président', 
    'Email' => 'contact@test2.com', 
    'idBureau' => 2
);

$affBureau=1;

foreach($indiv as $no => $data)
{
    if($data['idBureau']==$affBureau)
    {
	echo $no .'-'. $data['nom'] .' <i>'. $data['poste'] .'</i>: '. $data['Email'] .'<br />';
    }
}
Fin du principe

Résultat :

0-Hubert Gérant: hubert@test.com
1-Jean Réceptionniste: reception@test.com
NB : Dans cet exemple, une base de données serait sûrement plus adéquate.
Cet article est issu de Wikiversity. Le texte est sous licence Creative Commons - Attribution - Partage dans les Mêmes. Des conditions supplémentaires peuvent s'appliquer aux fichiers multimédias.