• Aucun résultat trouvé

PHP – 5 Les tableaux … suite Les tableaux associatifs

N/A
N/A
Protected

Academic year: 2022

Partager "PHP – 5 Les tableaux … suite Les tableaux associatifs"

Copied!
2
0
0

Texte intégral

(1)

M1 DILIPEM – virginie.zampa.free.fr -- [email protected]

PHP – 5

Les tableaux … suite Les tableaux associatifs

Les tableaux associatifs fonctionnent de la même façon que les tableaux indexés numériquement, à la différence qu'ils utilisent non plus des numéros comme indices, mais des étiquettes (ou mots) comme clés, que nous allons spécifier pour faire référence à une entrée du tableau.

Stockage des donnés d'un étudiant dans un tableau associatif :

$etu = array( "nom"=>"Bard" , "prenom"=> "Jo" , "n_etu"=>"20731827") ;

Il est possible de créer le tableau pas à pas, comme pour les tableaux indexés numériquement :

$etu["nom"]= "Bard" ;

$etu["prenom"]= "Jo" ;

$etu["n_etu"]= "20731827" ;

1. Afficher un tableau associatif

Cela fonctionne comme pour un tableau indexé numériquement, mais la clé sera un mot et pas un nombre.

1. print $etu["nom"] ; // Affiche Bard

Généralement on aura des éléments de même type dans un tableau indexé numériquement et plusieurs éléments qui composent une même donnée dans un tableau associatif.

Exemple :

$fruits=array("banane", "pomme, "poire") ;

$fruit=array ("nom"=> "banane", "couleur"=> "jaune") ;

2. Afficher un tableau associatif (bis)

Nous n'avons vu pour les tableaux associatifs qu'un affichage pas à pas où l'on doit toujours spécifier la clé de l'élément à afficher, ce qui peut être long et pas très pratique si l'on ne connaît pas toutes les clés du tableau (ce qui peut souvent arriver avec un tableau créé dynamiquement), ou si l'on s'en fiche et qu'on veut seulement afficher l'intégralité du tableau.

Il existe donc une autre boucle, la boucle foreach (littéralement "pour chaque"), qui peut être utilisée pour l'affichage des tableaux, indexés numériquement ou associatifs.

La boucle foreach parcourt chaque ligne du tableau et à chaque tour stocke l'élément considéré dans une sorte de variable temporaire, dont il faut définir le nom.

foreach ( $nom_tableau as $item ) {

print $item ; /* On ne mentionne pas le nom du tableau, seulement le nom de la variable temporaire que nous avons nommée ici $item. */

}

(2)

M1 DILIPEM – virginie.zampa.free.fr -- [email protected]

3. Affichage de la clé et de la valeur associée

foreach ( $nom_tableau as $cle=>$valeur ) { print $cle. ":".$valeur. . "<br/>" ;

} // affichera chaque couple clé : valeur

4. Tableau de tableaux

Un tableau peut contenir dans ses entrées un autre tableau. Un tableau associatif simple est suffisant pour stocker les informations d'un étudiant par exemple, mais pas pour stocker les informations de tous les étudiants d'une classe. Dans ce cas, on peut créer un tableau qui contient des éléments de type tableau.

Exemples de construction d'un tableau de tableaux :

$etu[] = array("nom"=>"Bard" , "prenom"=>"Jo" , "n_etu"=>"20731827") ;

$etu[] = array("nom"=>"" , "prenom"=>"" , "n_etudiant"=>"20731845") ; Ou encore

$etu1 = array("nom"=>"Bard" , "prenom"=>"Jo" , "n_etu"=>"20731827") ;

$etu2 = array("nom"=>"" , "prenom"=>"" , "n_etu"=>"20731845") ;

$etudiants = array( $etu1, $etu2) ; Affichage d'un tel tableau avec une boucle for

For ($i=0 ; $i<sizeof($etudiants) ; $i++) { print $etudiants[$i]['nom'] ;

print $etudiants[$i]['prenom'] ; }

Affichage d'un tel tableau avec deux foreach imbriqués foreach($etudiants as $tabEtu) {

// $tabEtu contient les éléments du tableau indexé numériquement, soit des tableaux associatifs (1 par étudiant)

// Si on connaît les clés ou on ne veut pas tout afficher, pas la peine d'utiliser un deuxième foreach, il suffit de faire référence à l'élément affiché avec sa clé print $tabEtu['nom'] ;

// Sinon, on peut utiliser un deuxième foreach, si on ne connaît pas les clés, ou si on veut tout afficher :

foreach($tabEtu as $info) { print $info ;

} }

N.B. : Une chaine de caractères peut être traitée comme un tableau indexé numériquement.

Prenons le mot chat par exemple, stocké dans une variable $mot . Pour afficher la lettre h, je peux écrire :

print $mot[1] ; // Rappel : l'indexation d'un tableau commence à 0.

Références

Documents relatifs

[...] Je m'étais toujours bien doutée que les eaux du Rhin ne vous arrêteraient pas; et connaissant votre force et combien vous aimez à nager en grande eau, j'avais bien cru

Mais même à mon niveau, on ne peut pas dire que l’on pratique vraiment de l’interne parce que l’on utilise toujours la force physique, il faut être à un très haut niveau

2 Le résumé des problèmes commerciaux ne fait pas nécessairement mention de tous les Membres qui ont pris la parole sur la question, mais seulement de celui qui l'a faite inscrire

Dans ce numéro de Vibr@tions un article sur la fabrication des dialyseurs (rein artificiel) à l’usine de Meyzieu, la sexualité des patients dialysés, un sujet pas toujours abordé

Aussi étonnant que cela puisse paraître, France Info en linéaire ne dispose toujours pas de mode de secours. Lors de précédentes pannes, les réponses ont été de deux ordres : la

Au delà des limites de ce livre sans conclusion, il apparaît bien en effet que le Royaume cherché par tous les mystiques n'est pas de ce monde... Celle-ci échappe toujours

En effet, même si les « documents familles » contenus dans cette mallette standard ne sont pas toujours adaptés à l’âge de l’enfant, ils aident les parents à