Les tableaux associatifs en PHP
Sommaire
- 1- Objectifs
- 2- Présentation
- 3- Création d’un tableau associatif
- 3.1- Première écriture
- 3.2- Syntaxe:
- 3.3- Exemple:
- 3.4- Description
- 3.5- Deuxième écriture
- 3.6- Syntaxe:
- 3.7- Exemple:
- 3.8- Description
- 3.9- Troisième écriture
- 3.10- Syntaxe:
- 3.11- Exemple:
- 3.12- Description
- 4- Lecture d’un tableau associatif
- 4.1- Lecture d'une valeur
- 4.2- Lecture de plusieurs valeurs
- 5- Modifier une valeur dans un tableau associatif
- 6- Applications
- 6.1- Exercice 01
- 6.2- Énoncé
- 6.3- Exercice 02
- 6.4- Énoncé
- 6.4.1- Sommaire du cours PHP
Les tableaux associatifs en PHP
-
Objectifs
- Connaitre les tableaux associatifs
-
Présentation
- Un tableau associatif est un tableau que ces indexes sont crées par l’utilisateur et qu’il va les associer à chaque valeur.
- Un tableau associatif est un ensemble de couples (clé, valeur). Une clé est soit un entier soit une chaîne de caractères. Une valeur est une donnée quelconque (booléen, numérique, chaîne de caractères..). La valeur d’un élément d’une collection dépend donc du couple (nom de la collection, clé).
-
Création d’un tableau associatif
- Pour créer un tableau associatif en PHP il existe plusieurs méthodes ou écritures:
-
Première écriture
-
Syntaxe:
- $nom_tableau= array(cle1 => valeur1,cle2 => valeur2,cle3 => valeur3…..)
-
Exemple:
-
Description
- Ce tableau est une variable en lui même puisqu’il commence par $
- Les éléments du tableau peuvent être de même type ou de type différent
-
Deuxième écriture
-
Syntaxe:
- $nom_tableau= array ();
- $nom_tableau [‘clé1’]= valeur1;
- $nom_tableau [‘clé2’]= valeur2;
- $nom_tableau [‘clé3’]= valeur3;
-
Exemple:
-
Description
- Pour cette écriture les indexes sont implicites et c’est le compilateur qui en déduit les valeurs qui commencent par défaut de 0 et s’incrémentent de 1.
- $semaine=array(); est facultative. Mais le fait de la déclarer est vu comme une bonne habitude.
- Ici on a crée un tableau vide puis on l’a rempli par la suite.
-
Troisième écriture
-
Syntaxe:
- $nom_tableau= [cle1 => valeur1,cle2 => valeur2,cle3 => valeur3…..]
-
Exemple:
-
Description
- C’est l’écriture le plus simplifiée
-
Lecture d’un tableau associatif
-
Lecture d’une valeur
- Pour lire une valeur d’un tableau indexé, on appelle la variable avec, entre les crochets [ ], le numéro de la clé correspondant à la valeur.
-
Lecture de plusieurs valeurs
- Pour lire tous les élément d’un tableau, la solution c’est à utiliser la boucle
for
ou la bouclewhile
. Cependant, PHP inclue une structure de contrôle qui s’applique spécialement aux tableaux. Il s’agit de la structureforeach
. -
Modifier une valeur dans un tableau associatif
- Pour modifier une valeur dans un tableau associatif, il suffit d’affecter une nouvelle valeur au tableau, avec, entre les crochets [ ], la clé sous forme de chaîne correspondant à l’ancienne valeur.
-
Applications
-
Exercice 01
-
Énoncé
- Créer un tableau associant à chaque mois de l’année le nombre de jours du mois. (On supposera que l’année n’est pas bissextile.)
- Afficher, sous forme d’un tableau de deux colonnes, le nombre de jours de chaque mois.
-
Exercice 02
-
Énoncé
- Créer un Tableau contenant les noms des 12 mois de l’année en Français et en Anglais
<?php
$semaine=array('prmier_jour'=>'lundi','deuxième_jour'=>'mardi','troisième_jour'=>'mercredi','quatrième_jour'=>'jeudi','cinquième_jour'=>'vendredi','sixième_jour'=>'samedi','septième_jour'=>'dimanche');
?>
<?php
$semaine=array();
$semaine['prmier_jour']='lundi';
$semaine['deuxième_jour']='mardi';
$semaine['troisième_jour']='mercredi';
$semaine['quatrième_jour']='jeudi';
$semaine['cinquième_jour']='vendredi';
$semaine['sixième_jour']='samedi';
$semaine['septième_jour']='dimanche';
?>
<?php
$semaine=['prmier_jour'=>'lundi','deuxième_jour'=>'mardi','troisième_jour'=>'mercredi','quatrième_jour'=>'jeudi',
'cinquième_jour'=>'vendredi','sixième_jour'=>'samedi','septième_jour'=>'dimanche'];
?>
<?php
$semaine=['prmier_jour'=>'lundi','deuxième_jour'=>'mardi','troisième_jour'=>'mercredi','quatrième_jour'=>'jeudi','cinquième_jour'=>'vendredi','sixième_jour'=>'samedi','septième_jour'=>'dimanche'];
echo $semaine=['prmier_jour']; //Affiche lundi
?>
<?php
$semaine=array('prmier_jour'=>'lundi','deuxième_jour'=>'mardi',
'troisième_jour'=>'mercredi','quatrième_jour'=>'jeudi',
'cinquième_jour'=>'vendredi','sixième_jour'=>'samedi',
'septième_jour'=>'dimanche');
foreach ($semaine as $jour)
{ //affiche jour
echo($jour."</br>");
}
echo "</br></br>";
foreach ($semaine as $jour =>$value)
{ //affiche prmier_jour Lundi
echo ("<b>".$jour."</b> ".$value."</br>");
}
?>
<?php
$semaine='prmier_jour'=>'lundi','deuxième_jour'=>'mardi','troisième_jour'=>'mercredi','quatrième_jour'=>'jeudi','cinquième_jour'=>'vendredi','sixième_jour'=>'samedi','septième_jour'=>'dimanche'];
$semaine['prmier_jour'] =' Lundi';
Solution
$jourMois = array('janvier'=>31,'février' =>28, 'mars'=>31, 'avril' => 30,'mai' => 31,
'juin' =>30, 'juillet' => 31,'août' =>31, 'septembre'=> 30, 'octobre' =>31,
’novembre’ =>30, ’décembre’=> 31);
echo’<table> <tr><th>Mois </th> <th>Nombre de jours </th></tr>’."\n";
foreach($jourMois as $m => $nbJ)
echo’<tr> <td>’. $m . ’ </td><td> ’. $nbJ . " </td></tr>\n";
echo’</table>’;
Solution
- Références:
- Livre PHP7 Cours et exercices Jean Engels 2e édition