Chapitre 2 :Tableaux
Pr. Aissam MESRAR
Tableaux
Tableaux
Tableaux Tableaux
Un tableau est une structure qui peut contenir plusieurs Un tableau est une structure qui peut contenir plusieurs valeurs
valeurs
Les données d’un tableau ne sont pas forcément de Les données d’un tableau ne sont pas forcément de même type
même type
La taille d’un tableau est dynamique La taille d’un tableau est dynamique
10 10 bon bon 12.3 12.3 m m
Tableaux Tableaux
Deux types de tableaux : Deux types de tableaux :
Tableaux scalaires : tableaux conventionnels Tableaux scalaires : tableaux conventionnels
Tableaux associatifs Tableaux associatifs
Tableaux scalaires Tableaux scalaires
Les éléments d’un tableau sont référencés par Les éléments d’un tableau sont référencés par des indices entiers
des indices entiers
Les indices sont par défaut successifs Les indices sont par défaut successifs
Le premier indice est 0 Le premier indice est 0
Le dernier est : nombre d’éléments – 1 Le dernier est : nombre d’éléments – 1
0 0 1 1 2 2 3 3 Elem1
Elem1 Elem2 Elem2 Elem3 Elem3 Elem4 Elem4
Tableaux scalaires Tableaux scalaires
Initialisation Initialisation
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 tableau Affichage 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);
Tableaux scalaires Tableaux scalaires
Accès aux éléments du tableau Accès aux éléments du tableau
Un élément du tableau est accédé via son indice Un élément du tableau est accédé via son indice
$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];
Tableaux scalaires Tableaux scalaires
Affectation des tableaux Affectation des tableaux
A la différence des langages classiques, on peut A la différence des langages classiques, on peut affecter un tableau à un autre.
affecter un tableau à un autre.
$tab1 = $tab2;
$tab1 = $tab2;
Permet de copier tous les éléments de $tab2 dans $tab1
Permet de copier tous les éléments de $tab2 dans $tab1
Tableaux scalaires Tableaux scalaires
Exemple récapitulatif Exemple ré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);
?>
?>
Tableaux scalaires Tableaux 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 indice Directement avec son indice
$couleurs[3]="orange";
$couleurs[3]="orange";
Sans indice Sans indice
$couleurs[]="orange";
$couleurs[]="orange";
Avec la fonction array_push() Avec la fonction array_push()
array_push($couleurs,"blanc");
array_push($couleurs,"blanc");
Tableaux scalaires Tableaux 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");
Tableaux scalaires Tableaux scalaires
Exemple récapitulatif Exemple ré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);
Fonctions de manipulation des Fonctions de manipulation des
tableaux tableaux
sizeof($tab) et count($tab) sizeof($tab) et count($tab)
Retournent le nombre d’éléments du tableau Retournent 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 tableau
tableau
Dépile le tableau Dépile le tableau
Fonctions de manipulation des Fonctions de manipulation des
tableaux tableaux
array_shift($tab) array_shift($tab)
Retourne et supprime le premier élément du Retourne et supprime le premier élément du tableau
tableau
Défile le tableau Défile le tableau
$premier = array_shift($tab);
$premier = array_shift($tab);
sort($tab) sort($tab)
Trie le tableau Trie le tableau
Fonctions de manipulation des Fonctions de manipulation des
tableaux tableaux
Exemple récapitulatif Exemple ré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);
Fonctions de manipulation des Fonctions de manipulation des
tableaux tableaux
list($var1,$var2,…) = $tab; list($var1,$var2,…) = $tab;
Range les valeurs des premiers éléments du tableau Range les valeurs des premiers éléments du tableau dans les variables passées en paramètres à la
dans les variables passées en paramètres à la fonction list
fonction list
Le nombre de variables doit être inférieur à la taille Le nombre de variables doit être inférieur à la taille du tableau
du tableau
Possibilité de sauter certains éléments Possibilité de sauter certains éléments
list(,$var2) = $tab; list(,$var2) = $tab;
Fonctions de manipulation des Fonctions de manipulation des
tableaux tableaux
Exemple 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>");
Fonctions de manipulation des Fonctions de manipulation des
tableaux tableaux
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");
Rouge
Rouge Vert Vert bleu bleu
$chaine_vers_tab
Fonctions de manipulation des Fonctions de manipulation des
tableaux tableaux
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 ="rouge:vert:bleu" $tab_vers_chaine ="rouge:vert:bleu"
Fonctions de manipulation des Fonctions de manipulation des
tableaux tableaux
Exemple 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);
Tableaux associatifs Tableaux associatifs
Dans un tableau scalaire, chaque élément est référencé Dans un tableau scalaire, chaque élément est référencé implicitement par un indice de type entier
implicitement par un indice de type entier
Dans un tableau associatif, chaque élément est référencé Dans un tableau associatif, chaque élément est référencé
explicitement par un indice appelé clé de type arbitraire
explicitement par un indice appelé clé de type arbitraire
Tableaux associatifs Tableaux 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 = array("nom"=>"Dupont","prenom"=>"Michel","section"=>"MSTI");
$tab_ass = array("nom"=>"Dupont","prenom"=>"Michel","section"=>"MSTI");
La clé peut être de type chaîne de caractère La clé peut être de type chaîne de caractère
nom nom Dupont Dupont prenom prenom Michel Michel section section MSTI MSTI
clé
Tableaux associatifs Tableaux 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érents
différents
$tab_ass = array(1=>1278, "nom"=>"Dupont","prenom"=>"Michel")
$tab_ass = array(1=>1278, "nom"=>"Dupont","prenom"=>"Michel")
1 1 1278 1278 nom nom Dupont Dupont prenom prenom Michel Michel
clé
valeur
Tableaux associatifs Tableaux associatifs
Un tableau scalaire est un cas particulier des Un tableau scalaire est un cas particulier des tableaux associatifs où toutes les clés sont des tableaux associatifs où toutes les clés sont des
entiers entiers
Les deux instructions sont équivalentes : Les deux instructions sont équivalentes :
$tab_ass_scal = array(0 =>"Dupont",1=>"Michel",2=>"MSTI"); $tab_ass_scal = array(0 =>"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()
Tableaux associatifs Tableaux associatifs
Accès aux éléments d’un tableau associatif Accè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"]);
Tableaux associatifs Tableaux associatifs
Insertion à la fin du tableau Insertion à la fin du tableau
Directement avec la clé Directement avec la clé
$tab[nouvelle_cle] = nouvelle_valeur;
$tab[nouvelle_cle] = nouvelle_valeur;
Tableaux associatifs Tableaux associatifs
Fonctions de gestion interne Fonctions de gestion interne
Le dernier élément manipulé est toujours mémorisé Le dernier élément manipulé est toujours mémorisé (via un pointeur)
(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é
Tableaux associatifs Tableaux associatifs
Fonctions de gestion interne Fonctions de gestion interne
reset($tab) reset($tab)
Positionne le pointeur du tableau sur le premier élément et Positionne le pointeur du tableau sur le premier élément et renvoie sa valeur
renvoie sa valeur
end($tab) end($tab)
Positionne le pointeur du tableau sur le dernier élément et Positionne le pointeur du tableau sur le dernier élément et renvoie sa valeur
renvoie sa valeur
next($tab) next($tab)
avance le pointeur du tableau de 1 et renvoie la valeur de avance le pointeur du tableau de 1 et renvoie la valeur de l’élément suivant
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édent
l’élément précédent
Tableaux associatifs Tableaux associatifs
Fonctions de gestion interne Fonctions de gestion interne
each($tab) each($tab)
Retourne l’élément courant et avance le pointeur du Retourne l’élément courant et avance le pointeur du tableau de 1
tableau de 1
L’élément renvoyé est un tableau de 4 éléments L’élément renvoyé est un tableau de 4 éléments
Clés : 1, value, 0, key Clés : 1, value, 0, key
Valeurs associées : Valeurs associées :
0,key : valeur de la clé
0,key : valeur de la clé
Tableaux multidimensionnels Tableaux multidimensionnels
Un élément de ce tableau peut être également un Un élément de ce tableau peut être également un tableau
tableau