Upload
nicolette-evrard
View
128
Download
3
Embed Size (px)
Citation preview
Ecole ESIAMEcole ESIAM 11
Chapitre 2 :Tableaux
Pr. Aissam MESRAR
Ecole ESIAMEcole ESIAM 22
TableauxTableaux
Ecole ESIAMEcole ESIAM 33
TableauxTableaux Un tableau est une structure qui peut contenir Un tableau est une structure qui peut contenir
plusieurs valeursplusieurs valeurs
Les données d’un tableau ne sont pas forcément Les données d’un tableau ne sont pas forcément
de même typede même type
La taille d’un tableau est dynamiqueLa taille d’un tableau est dynamique
1010 bonbon 12.312.3 mm
Ecole ESIAMEcole ESIAM 44
TableauxTableaux
Deux types de tableaux : Deux types de tableaux :
Tableaux scalaires : tableaux Tableaux scalaires : tableaux
conventionnelsconventionnels
Tableaux associatifsTableaux associatifs
Ecole ESIAMEcole ESIAM 55
Tableaux scalairesTableaux scalaires
Les éléments d’un tableau sont Les éléments d’un tableau sont
référencés par des indices entiersréférencés par des indices entiers
Les indices sont par défaut successifs Les indices sont par défaut successifs Le premier indice est 0Le premier indice est 0
Le dernier est : nombre d’éléments – 1Le dernier est : nombre d’éléments – 1
00 11 22 33
ElemElem11
ElemElem22
ElemElem33
ElemElem44
Ecole ESIAMEcole ESIAM 66
Tableaux scalairesTableaux scalaires
InitialisationInitialisation Un tableau est initialisé par la fonction Un tableau est initialisé par la fonction array()array()
$nom_tab = array(val1,val2,val3,…);$nom_tab = array(val1,val2,val3,…);
Exemple :Exemple :
$couleurs=array("rouge","vert","bleu");$couleurs=array("rouge","vert","bleu");
Affichage d’un tableauAffichage d’un tableau Le tableau peut être affiché en entier par la fonction print_r Le tableau peut être affiché en entier par la fonction print_r
() () print_r($nom_tab);print_r($nom_tab);
Ecole ESIAMEcole ESIAM 77
Tableaux scalairesTableaux scalaires
Accès aux éléments du tableauAccès aux éléments du tableau Un élément du tableau est accédé via son Un élément du tableau est accédé via son
indiceindice
$nom_tab[indice]$nom_tab[indice]
Exemple:Exemple:
$couleurs[2]= "gris";$couleurs[2]= "gris";
print($couleurs[0]);print($couleurs[0]);
$ma_couleur = $couleurs[1];$ma_couleur = $couleurs[1];
Ecole ESIAMEcole ESIAM 88
Tableaux scalairesTableaux scalaires
Affectation des tableauxAffectation des tableaux
A la différence des langages classiques, on A la différence des langages classiques, on
peut affecter un tableau à un autre. peut affecter un tableau à un autre.
$tab1 = $tab2;$tab1 = $tab2;
Permet de copier tous les éléments de $tab2 dans Permet de copier tous les éléments de $tab2 dans
$tab1$tab1
Ecole ESIAMEcole ESIAM 99
Tableaux scalairesTableaux scalaires Exemple récapitulatifrécapitulatif
<?php<?php$couleurs=array("rouge","vert","bleu");$couleurs=array("rouge","vert","bleu");print_r($couleurs);print_r($couleurs);print("<br>");print("<br>");
print("première couleur :$couleurs[0] <br>");print("première couleur :$couleurs[0] <br>");$ma_couleur = $couleurs[1];$ma_couleur = $couleurs[1];
print("<br> modification de la troisième couleur<br>");print("<br> modification de la troisième couleur<br>");$couleurs[2]="gris";$couleurs[2]="gris";print_r($couleurs);print_r($couleurs);print("<br><br> couleur préférée : $ma_couleur<BR>");print("<br><br> couleur préférée : $ma_couleur<BR>");
$copie_tab = $couleurs;$copie_tab = $couleurs;print("<BR> affichage de la copie du tableau: >BR>");print("<BR> affichage de la copie du tableau: >BR>");print_r($copie_tab);print_r($copie_tab);?>?>
Ecole ESIAMEcole ESIAM 1010
Tableaux scalairesTableaux scalaires
Ajout d’un élément à la fin du tableau Ajout d’un élément à la fin du tableau Trois manières :Trois manières :
Directement avec son indiceDirectement avec son indice$couleurs[3]="orange";$couleurs[3]="orange";
Sans indiceSans indice$couleurs[]="orange";$couleurs[]="orange";
Avec la fonction array_push()Avec la fonction array_push()array_push($couleurs,"blanc");array_push($couleurs,"blanc");
Ecole ESIAMEcole ESIAM 1111
Tableaux scalairesTableaux scalaires
Ajout d’un élément au début du tableau Ajout d’un élément au début du tableau
Avec la fonction array_unshift()Avec la fonction array_unshift() Exemple :Exemple :
array_unshift($couleurs,"noir");array_unshift($couleurs,"noir");
Ecole ESIAMEcole ESIAM 1212
Tableaux scalairesTableaux scalaires
Exemple récapitulatifrécapitulatif
<?php<?php$couleurs=array("rouge","vert","bleu");$couleurs=array("rouge","vert","bleu");print_r($couleurs);print_r($couleurs);print("<br> ajout à la fin du tableau<br>");print("<br> ajout à la fin du tableau<br>");
$couleurs[3]="orange";$couleurs[3]="orange";$couleurs[]="jaune";$couleurs[]="jaune";array_push($couleurs,"blanc");array_push($couleurs,"blanc");
print_r($couleurs);print_r($couleurs);
print("<br> ajout au début du tableau <br>");print("<br> ajout au début du tableau <br>");array_unshift($couleurs,"noir");array_unshift($couleurs,"noir");print_r($couleurs);print_r($couleurs);?>?>
Ecole ESIAMEcole ESIAM 1313
Fonctions de manipulation des Fonctions de manipulation des tableauxtableaux
sizeof($tab) et count($tab)sizeof($tab) et count($tab) Retournent le nombre d’éléments du tableauRetournent le nombre d’éléments du tableau
$taille=count($tab);$taille=count($tab);
array_pop($tab)array_pop($tab) Retourne et supprime le dernier élément du Retourne et supprime le dernier élément du
tableautableau
Dépile le tableauDépile le tableau
$dernier = array_pop($tab);$dernier = array_pop($tab);
Ecole ESIAMEcole ESIAM 1414
Fonctions de manipulation des Fonctions de manipulation des tableauxtableaux
array_shift($tab)array_shift($tab) Retourne et supprime le premier élément du Retourne et supprime le premier élément du
tableautableau
Défile le tableauDéfile le tableau
$premier = array_shift($tab);$premier = array_shift($tab);
sort($tab)sort($tab) Trie le tableauTrie le tableau
Voir aussi : asort(), rsort(), arsort(), ksort()Voir aussi : asort(), rsort(), arsort(), ksort()
Ecole ESIAMEcole ESIAM 1515
Fonctions de manipulation des Fonctions de manipulation des tableauxtableaux
Exemple récapitulatifrécapitulatif<?php<?php$couleurs=array("noir","rouge","vert","bleu","orange","jaune");$couleurs=array("noir","rouge","vert","bleu","orange","jaune");print_r($couleurs);print_r($couleurs);
$dcouleur=array_pop($couleurs);$dcouleur=array_pop($couleurs);$pcouleur=array_shift($couleurs);$pcouleur=array_shift($couleurs);print("dernière couleur :$dcouleur <BR>");print("dernière couleur :$dcouleur <BR>");print("première couleur :$pcouleur <BR>");print("première couleur :$pcouleur <BR>");print("Tableau après suppression du premier et dernier éléments : <BR>");print("Tableau après suppression du premier et dernier éléments : <BR>");print_r($couleurs);print_r($couleurs);
print("<br> tableau trié <br>");print("<br> tableau trié <br>");sort($couleurs);sort($couleurs);print_r($couleurs);print_r($couleurs);
?>?>
Ecole ESIAMEcole ESIAM 1616
Fonctions de manipulation des Fonctions de manipulation des tableauxtableaux
list($var1,$var2,…) = $tab;list($var1,$var2,…) = $tab; Range les valeurs des premiers éléments du Range les valeurs des premiers éléments du
tableau dans les variables passées en tableau dans les variables passées en
paramètres à la fonction listparamètres à la fonction list
Le nombre de variables doit être inférieur à la Le nombre de variables doit être inférieur à la
taille du tableautaille du tableau
Possibilité de sauter certains élémentsPossibilité de sauter certains éléments list(,$var2) = $tab;list(,$var2) = $tab;
Extrait le deuxième élément du tableauExtrait le deuxième élément du tableau
Ecole ESIAMEcole ESIAM 1717
Fonctions de manipulation des Fonctions de manipulation des tableauxtableaux
Exemple<?php<?php
$couleurs=array("noir","rouge","vert","bleu","orange","jaune");$couleurs=array("noir","rouge","vert","bleu","orange","jaune");
print_r($couleurs);print_r($couleurs);
print("<br> utilisation de list <br>");print("<br> utilisation de list <br>");
print("Extraire la première et deuxième valeurs : <BR>");print("Extraire la première et deuxième valeurs : <BR>");
list($v1,$v2) = $couleurs;list($v1,$v2) = $couleurs;
print("$v1:$v2");print("$v1:$v2");
print("<BR><BR>Extraire la troisème et quatrième valeurs :<BR>");print("<BR><BR>Extraire la troisème et quatrième valeurs :<BR>");
list(,,$v3,$v4) = $couleurs;list(,,$v3,$v4) = $couleurs;
print("$v3:$v4<BR>");print("$v3:$v4<BR>");
?>?>
Ecole ESIAMEcole ESIAM 1818
Fonctions de manipulation des Fonctions de manipulation des tableauxtableaux
explode("sep",$chaine);explode("sep",$chaine); Convertit une chaîne de caractère en un tableau,Convertit une chaîne de caractère en un tableau,
Le séparateur des éléments dans la chîane est : Le séparateur des éléments dans la chîane est : "sep""sep"
$chaine_vers_tab = explode(":","rouge:vert:bleu");$chaine_vers_tab = explode(":","rouge:vert:bleu");
RougeRouge VertVert bleubleu$chaine_vers_tab
Ecole ESIAMEcole ESIAM 1919
Fonctions de manipulation des Fonctions de manipulation des tableauxtableaux
implode("sep",$tab);implode("sep",$tab);
Convertit un tableau en une chaîne de Convertit un tableau en une chaîne de
caractère en insérant le séparateur caractère en insérant le séparateur
"sep" "sep" entre deux éléments consécutifs entre deux éléments consécutifs $tab_vers_chaine = implode(":",$chaine_vers_tab);$tab_vers_chaine = implode(":",$chaine_vers_tab);
Equivalent à Equivalent à $tab_vers_chaine $tab_vers_chaine
="rouge:vert:bleu"="rouge:vert:bleu"
Ecole ESIAMEcole ESIAM 2020
Fonctions de manipulation des Fonctions de manipulation des tableauxtableaux
Exemple<?php<?php
$dateslash="12/03/2006";$dateslash="12/03/2006";
print("<br> conversion de chaine en tableau <br>");print("<br> conversion de chaine en tableau <br>");$tabdate = explode("/",$dateslash);$tabdate = explode("/",$dateslash);
print_r($tabdate);print_r($tabdate);
print("<br> conversion de tableau en chaine <br>");print("<br> conversion de tableau en chaine <br>");$datetiret = implode("-",$tabdate);$datetiret = implode("-",$tabdate);
print($datetiret);print($datetiret);?>?>
Ecole ESIAMEcole ESIAM 2121
Tableaux associatifsTableaux associatifs
Dans un tableau scalaire, chaque élément est Dans un tableau scalaire, chaque élément est
référencé implicitement par un indice de type entierréférencé implicitement par un indice de type entier
Dans un tableau associatif, chaque élément est Dans un tableau associatif, chaque élément est
référencé explicitement par un indice appelé clé de référencé explicitement par un indice appelé clé de
type arbitrairetype arbitraire
clecle11
valval11
clecle22
valval22
clecle33
valval33
Ecole ESIAMEcole ESIAM 2222
Tableaux associatifsTableaux associatifs La clé et la valeur correspondante sont séparées par "=>" La clé et la valeur correspondante sont séparées par "=>"
$tab_ass = $tab_ass =
array("nom"=>"Dupont","prenom"=>"Michel","section"=>"MSTI");array("nom"=>"Dupont","prenom"=>"Michel","section"=>"MSTI");
La clé peut être de type chaîne de caractèreLa clé peut être de type chaîne de caractère
nomnom DupontDupont prenomprenom MichelMichel sectionsection MSTIMSTI
clé
valeur
Ecole ESIAMEcole ESIAM 2323
Tableaux associatifsTableaux associatifs
Dans le même tableau deux clés peuvent être de types Dans le même tableau deux clés peuvent être de types
différentsdifférents
$tab_ass = array(1=>1278, "nom"=>"Dupont","prenom"=>"Michel")$tab_ass = array(1=>1278, "nom"=>"Dupont","prenom"=>"Michel")
11 12781278 nomnom DupontDupont prenomprenom MichelMichel
clé
valeur
Ecole ESIAMEcole ESIAM 2424
Tableaux associatifsTableaux associatifs
Un tableau scalaire est un cas particulier Un tableau scalaire est un cas particulier
des tableaux associatifs où toutes les des tableaux associatifs où toutes les
clés sont des entiersclés sont des entiers Les deux instructions sont équivalentes :Les deux instructions sont équivalentes :
$tab_ass_scal = array(0 $tab_ass_scal = array(0
=>"Dupont",1=>"Michel",2=>"MSTI");=>"Dupont",1=>"Michel",2=>"MSTI");
$tab_scal = array("Dupont","Michel","MSTI");$tab_scal = array("Dupont","Michel","MSTI");
Vérifier avec la fonction print_r()Vérifier avec la fonction print_r()
Ecole ESIAMEcole ESIAM 2525
Tableaux associatifsTableaux associatifs
Accès aux éléments d’un tableau associatifAccès aux éléments d’un tableau associatif
via la clévia la clé
$tab[cle_element]$tab[cle_element]
Exemple Exemple
$nom_eleve= $eleve["nom"];$nom_eleve= $eleve["nom"];
$eleve["section"] = "MSTIEEA";$eleve["section"] = "MSTIEEA";
print($eleve["prenom"]);print($eleve["prenom"]);
Ecole ESIAMEcole ESIAM 2626
Tableaux associatifsTableaux associatifs
Insertion à la fin du tableauInsertion à la fin du tableau
Directement avec la cléDirectement avec la clé
$tab[nouvelle_cle] = nouvelle_valeur;$tab[nouvelle_cle] = nouvelle_valeur;
Ecole ESIAMEcole ESIAM 2727
Tableaux associatifsTableaux associatifs
Fonctions de gestion interneFonctions de gestion interne
Le dernier élément manipulé est toujours Le dernier élément manipulé est toujours
mémorisé (via un pointeur)mémorisé (via un pointeur)
current($tab)current($tab)
Retourne la valeur du dernier élément manipuléRetourne la valeur du dernier élément manipulé
key($tab)key($tab)
Retourne la clé du dernier élément manipuléRetourne la clé du dernier élément manipulé
Ecole ESIAMEcole ESIAM 2828
Tableaux associatifsTableaux associatifs Fonctions de gestion interneFonctions de gestion interne
reset($tab)reset($tab) Positionne le pointeur du tableau sur le premier élément Positionne le pointeur du tableau sur le premier élément
et renvoie sa valeuret renvoie sa valeur
end($tab)end($tab) Positionne le pointeur du tableau sur le dernier élément Positionne le pointeur du tableau sur le dernier élément
et renvoie sa valeuret renvoie sa valeur next($tab)next($tab)
avance le pointeur du tableau de 1 et renvoie la valeur avance le pointeur du tableau de 1 et renvoie la valeur de l’élément suivantde l’élément suivant
prev($tab)prev($tab) recule le pointeur du tableau de 1 et renvoie la valeur de recule le pointeur du tableau de 1 et renvoie la valeur de
l’élément précédentl’élément précédent
Ecole ESIAMEcole ESIAM 2929
Tableaux associatifsTableaux associatifs
Fonctions de gestion interne Fonctions de gestion interne each($tab)each($tab)
Retourne l’élément courant et avance le Retourne l’élément courant et avance le
pointeur du tableau de 1pointeur du tableau de 1
L’élément renvoyé est un tableau de 4 élémentsL’élément renvoyé est un tableau de 4 éléments
Clés : 1, value, 0, keyClés : 1, value, 0, key
Valeurs associées : Valeurs associées :
0,key : valeur de la clé0,key : valeur de la clé
1,value : valeur de l’élément1,value : valeur de l’élément
Ecole ESIAMEcole ESIAM 3030
Tableaux multidimensionnelsTableaux multidimensionnels
Un élément de ce tableau peut être également un Un élément de ce tableau peut être également un
tableautableau
ExempleExemple$menu = $menu =
array("entree"=>array("nicoice","mexicaine","variee"),array("entree"=>array("nicoice","mexicaine","variee"),
"plat"=>array("poisson","tagine","brochettes"),"plat"=>array("poisson","tagine","brochettes"),
"dessert"=>array("banane","pomme","orange"));"dessert"=>array("banane","pomme","orange"));
print_r($menu);print_r($menu);