Tableaux:Tableaux associatifs PHP

Un article de WikiTuto.

Jump to: navigation, search

Sommaire

Explication

L'autre type de tableau disponible en PHP3 est concerne les tableaux associatifs (comme en Perl). Qu'est-ce qu'un tableau associatif ? C'est un tableau qui contient pour chaque élément une valeur associée qui sert de clé d'accès. Quel en est l'interêt ?

Exemple

Prenons le cas d'un tableau contenant les quantités d'un produit vendu sur la semaine écoulée. Si on utilise un tableau classique, il faudra prendre une convention pour représenter chacun des sept jours de la semaine sous la forme d'un entier de 0 à 6. Cela donnerait quelquechose comme ça :

// 0 -> Lundi, 6 -> Dimanche
$vente_hebdo[6] = 0;  // Aucune vente le Dimanche
$vente_hebdo[2] = 1562 ; 


Ceci ne rend pas le code très lisible, d'une part, et peut ne pas répondre à tous les besoins. L'utilisation de tableaux associatifs change grandement les choses :

$vente_hebdo["dimanche"] = 0;
$vente_hebdo["mardi"] = 1562 ; 

De la même façon que pour les tableaux classiques, on peut affecter plusieurs valeurs d'un coup :

$vente_hebdo = array("lundi"=>1742,"mardi"=>1562,"mercredi"=>1920,"jeudi"=>1239,
               "vendredi"=>2012,"samedi"=>720) ; 

Fonctions dédiées

Question: Bon, tout cela est très bien. Je vois comment on peut décrire les éléments d'un tableau classique en utilisant un indice, mais comment faire pour un tableau associatif ? Réponse: En utilisant les fonctions dédiées aux tableaux : each() et reset() en particulier. Si on reprend l'exemple précédent, cela donne :

<?php
$vente_hebdo = array("lundi"=>1742,"mardi"=>1562,"mercredi"=>1920,"jeudi"=>1239,
               "vendredi"=>2012,"samedi"=>720) ; 
$vente_totale = 0;
reset($vente_hebdo);               
while (list($key, $value) = each($vente_hebdo)) {
  echo "
Vente de $key : $value unités\n"; $vente_totale += $value; } echo "
Vente sur la semaine : $vente_totale unités\n"; ?>
  Vente de lundi : 1742 unités 
  Vente de mardi : 1562 unités 
  Vente de mercredi : 1920 unités 
  Vente de jeudi : 1239 unités 
  Vente de vendredi : 2012 unités 
  Vente de samedi : 720 unités 
  Vente sur la semaine : 9195 unités

Voir aussi

Source

Boîte à outils
Annuaire gratuitCe site est listé dans la catégorie Informatique : Aide et astuces en informatique Annuaire