Chapitre 2 :Tableaux
Pr. Aissam MESRAR
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
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
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);
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
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)
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
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
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);
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);
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
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
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é
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");
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)
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