Chapitre 2 :Tableaux Pr. Aissam MESRAR Ecole ESIAM
Tableaux Ecole ESIAM
Tableaux Un tableau est une structure qui peut contenir plusieurs valeurs Les données d’un tableau ne sont pas forcément de même type La taille d’un tableau est dynamique 10 bon 12.3 m Ecole ESIAM
Tableaux Deux types de tableaux : Tableaux scalaires : tableaux conventionnels Tableaux associatifs Ecole ESIAM
Tableaux scalaires Les éléments d’un tableau sont référencés par des indices entiers Les indices sont par défaut successifs Le premier indice est 0 Le dernier est : nombre d’éléments – 1 1 2 3 Elem1 Elem2 Elem3 Elem4 Ecole ESIAM
Tableaux scalaires Initialisation Affichage d’un tableau Un tableau est initialisé par la fonction array() $nom_tab = array(val1,val2,val3,…); Exemple : $couleurs=array("rouge","vert","bleu"); Affichage d’un tableau Le tableau peut être affiché en entier par la fonction print_r () print_r($nom_tab); Ecole ESIAM
Tableaux scalaires Accès aux éléments du tableau Un élément du tableau est accédé via son indice $nom_tab[indice] Exemple: $couleurs[2]= "gris"; print($couleurs[0]); $ma_couleur = $couleurs[1]; Ecole ESIAM
Tableaux scalaires Affectation des tableaux A la différence des langages classiques, on peut affecter un tableau à un autre. $tab1 = $tab2; Permet de copier tous les éléments de $tab2 dans $tab1 Ecole ESIAM
Tableaux scalaires Exemple récapitulatif <?php $couleurs=array("rouge","vert","bleu"); print_r($couleurs); print("<br>"); print("première couleur :$couleurs[0] <br>"); $ma_couleur = $couleurs[1]; print("<br> modification de la troisième couleur<br>"); $couleurs[2]="gris"; print("<br><br> couleur préférée : $ma_couleur<BR>"); $copie_tab = $couleurs; print("<BR> affichage de la copie du tableau: >BR>"); print_r($copie_tab); ?> Ecole ESIAM
Tableaux scalaires Ajout d’un élément à la fin du tableau Trois manières : Directement avec son indice $couleurs[3]="orange"; Sans indice $couleurs[]="orange"; Avec la fonction array_push() array_push($couleurs,"blanc"); Ecole ESIAM
Tableaux scalaires Ajout d’un élément au début du tableau Avec la fonction array_unshift() Exemple : array_unshift($couleurs,"noir"); Ecole ESIAM
Tableaux scalaires Exemple récapitulatif <?php $couleurs=array("rouge","vert","bleu"); print_r($couleurs); print("<br> ajout à la fin du tableau<br>"); $couleurs[3]="orange"; $couleurs[]="jaune"; array_push($couleurs,"blanc"); print("<br> ajout au début du tableau <br>"); array_unshift($couleurs,"noir"); ?> Ecole ESIAM
Fonctions de manipulation des tableaux sizeof($tab) et count($tab) Retournent le nombre d’éléments du tableau $taille=count($tab); array_pop($tab) Retourne et supprime le dernier élément du tableau Dépile le tableau $dernier = array_pop($tab); Ecole ESIAM
Fonctions de manipulation des tableaux array_shift($tab) Retourne et supprime le premier élément du tableau Défile le tableau $premier = array_shift($tab); sort($tab) Trie le tableau Voir aussi : asort(), rsort(), arsort(), ksort() Ecole ESIAM
Fonctions de manipulation des tableaux Exemple récapitulatif <?php $couleurs=array("noir","rouge","vert","bleu","orange","jaune"); print_r($couleurs); $dcouleur=array_pop($couleurs); $pcouleur=array_shift($couleurs); print("dernière couleur :$dcouleur <BR>"); print("première couleur :$pcouleur <BR>"); print("Tableau après suppression du premier et dernier éléments : <BR>"); print("<br> tableau trié <br>"); sort($couleurs); ?> Ecole ESIAM
Fonctions de manipulation des tableaux list($var1,$var2,…) = $tab; Range les valeurs des premiers éléments du tableau dans les variables passées en paramètres à la fonction list Le nombre de variables doit être inférieur à la taille du tableau Possibilité de sauter certains éléments list(,$var2) = $tab; Extrait le deuxième élément du tableau Ecole ESIAM
Fonctions de manipulation des tableaux Exemple <?php $couleurs=array("noir","rouge","vert","bleu","orange","jaune"); print_r($couleurs); print("<br> utilisation de list <br>"); print("Extraire la première et deuxième valeurs : <BR>"); list($v1,$v2) = $couleurs; print("$v1:$v2"); print("<BR><BR>Extraire la troisème et quatrième valeurs :<BR>"); list(,,$v3,$v4) = $couleurs; print("$v3:$v4<BR>"); ?> Ecole ESIAM
Fonctions de manipulation des tableaux explode("sep",$chaine); Convertit une chaîne de caractère en un tableau, Le séparateur des éléments dans la chîane est : "sep" $chaine_vers_tab = explode(":","rouge:vert:bleu"); $chaine_vers_tab Rouge Vert bleu Ecole ESIAM
Fonctions de manipulation des tableaux implode("sep",$tab); Convertit un tableau en une chaîne de caractère en insérant le séparateur "sep" entre deux éléments consécutifs $tab_vers_chaine = implode(":",$chaine_vers_tab); Equivalent à $tab_vers_chaine ="rouge:vert:bleu" Ecole ESIAM
Fonctions de manipulation des tableaux Exemple <?php $dateslash="12/03/2006"; print("<br> conversion de chaine en tableau <br>"); $tabdate = explode("/",$dateslash); print_r($tabdate); print("<br> conversion de tableau en chaine <br>"); $datetiret = implode("-",$tabdate); print($datetiret); ?> Ecole ESIAM
Tableaux associatifs cle1 val1 cle2 val2 cle3 val3 Dans un tableau scalaire, chaque élément est référencé implicitement par un indice de type entier Dans un tableau associatif, chaque élément est référencé explicitement par un indice appelé clé de type arbitraire cle1 val1 cle2 val2 cle3 val3 Ecole ESIAM
Tableaux associatifs clé valeur La clé et la valeur correspondante sont séparées par "=>" $tab_ass = array("nom"=>"Dupont","prenom"=>"Michel","section"=>"MSTI"); La clé peut être de type chaîne de caractère clé nom Dupont prenom Michel section MSTI valeur Ecole ESIAM
Tableaux associatifs Dans le même tableau deux clés peuvent être de types différents $tab_ass = array(1=>1278, "nom"=>"Dupont","prenom"=>"Michel") clé 1 1278 nom Dupont prenom Michel valeur Ecole ESIAM
Tableaux associatifs Un tableau scalaire est un cas particulier des tableaux associatifs où toutes les clés sont des entiers Les deux instructions sont équivalentes : $tab_ass_scal = array(0 =>"Dupont",1=>"Michel",2=>"MSTI"); $tab_scal = array("Dupont","Michel","MSTI"); Vérifier avec la fonction print_r() Ecole ESIAM
Tableaux associatifs Accès aux éléments d’un tableau associatif via la clé $tab[cle_element] Exemple $nom_eleve= $eleve["nom"]; $eleve["section"] = "MSTIEEA"; print($eleve["prenom"]); Ecole ESIAM
Tableaux associatifs Insertion à la fin du tableau Directement avec la clé $tab[nouvelle_cle] = nouvelle_valeur; Ecole ESIAM
Tableaux associatifs Fonctions de gestion interne Le dernier élément manipulé est toujours mémorisé (via un pointeur) current($tab) Retourne la valeur du dernier élément manipulé key($tab) Retourne la clé du dernier élément manipulé Ecole ESIAM
Tableaux associatifs Fonctions de gestion interne reset($tab) Positionne le pointeur du tableau sur le premier élément et renvoie sa valeur end($tab) Positionne le pointeur du tableau sur le dernier élément et renvoie sa valeur next($tab) avance le pointeur du tableau de 1 et renvoie la valeur de l’élément suivant prev($tab) recule le pointeur du tableau de 1 et renvoie la valeur de l’élément précédent Ecole ESIAM
Tableaux associatifs Fonctions de gestion interne each($tab) Retourne l’élément courant et avance le pointeur du tableau de 1 L’élément renvoyé est un tableau de 4 éléments Clés : 1, value, 0, key Valeurs associées : 0,key : valeur de la clé 1,value : valeur de l’élément Ecole ESIAM
Tableaux multidimensionnels Un élément de ce tableau peut être également un tableau Exemple $menu = array("entree"=>array("nicoice","mexicaine","variee"), "plat"=>array("poisson","tagine","brochettes"), "dessert"=>array("banane","pomme","orange")); print_r($menu); Ecole ESIAM