Syntaxe de base PHP
6 Les variables
6.4 Le type tableau (array)
Un tableau est une variable pouvant contenir plusieurs valeurs ordonnées. A chaque valeur d'un tableau correspond une clé unique qui permet d'acceder à la zone mémoire où elle est stockée. Une clé est soit un entier (tableau indexé), soit une chaîne de caractères (tableau associatif). Une valeur est de type quelconque (entier, chaîne de caractères, tableau, ...). Un tableau peut contenir à la fois des clés entières et chaîne de caractères (nous pouvons parler de tableaux hybrides).
Création d'un tableau
Le mot clé array est généralement utilisé pour créer un tableau. L'insertion d'une valeur dans un tableau qui n'existe pas à l'aide de la syntaxe dite « entre crochets » permet également de créer un tableau.
Exemple 14
<?php //cas 1 $etudiant=array (0=>1, 1=>"Diop", 2=>"Moussa"); print_r($etudiant) ; ?> |
<?php //cas 2 $etudiant=array(1,"Diop" ,"Moussa") ; print_r($etudiant) ; ?> |
<?php //cas 3 $etudiant[0]=1 ; $etudiant[1]="Diop" ; $etudiant[2]="Moussa"; print_r($etudiant) ; ?> |
<?php //cas 4 $etudiant=array ('id'=>1, 'nom'=>"Diop", 'prenom'=>"Moussa"); print_r($etudiant) ; ?> |
<?php //cas 5 $etudiant=array ('id'=>1, 10=>"Diop", 'prenom'=>"Moussa"); print_r($etudiant) ; ?> |
<?php //cas 6 $etudiant[]=1 ; $etudiant[5]="Diop" ; $etudiant[]="Moussa"; print_r($etudiant) ; ?> |
Les cas 1, 2, 3 sont identiques avec des clés entieres (0, 1, 2). Le cas 4 utilise des clés chaîne de caractères. Le cas 5 utilise des clés entieres et des clés chaîne de caractères. Pour le cas 6 où nous ne spécifions pas de clé, PHP attribut la clé entière la plus élevé plus un. Donc les clés entières pour le cas 6 sont 0, 5 et 6.
Accès aux valeurs d'un tableau
La syntaxe entre crochets est utilisée pour accéder à une valeur d'un tableau.
Exemple 15
<?php //cas 1 $etu[0]=1 ; $etu['nom']="Diop" ; $val="prenom"; $etu[$val]="Moussa" ; echo "id:" . $etu[0] . " nom: " . $etu['nom'] . " prenom: " . $etu[$val] . "<br />"; echo "id: $etu[0] nom: {$etu['nom']} prenom : {$etu[$val]} "; ?> |
<?php //cas 2 $etus[0]= array('id'=>1, 'nom'=>"Diop",'prenom'=>"Moussa"); $etus[1]= array('id'=>2, 'nom'=>"Ba",'prenom'=>"Mamadou"); $etus[2]= array('id'=>3, 'nom'=>"Gueye",'prenom'=>"Fatou"); echo "id:" . $etus[0]['id'] . " nom: " . $etus[0]['nom'] . "<br />"; echo "id: {$etus[0]['id']} nom: {$etus[0]['nom']} <br />"; ?> |
Noter la syntaxe entre accoladde de même que la concaténation de chaînes de caractères à utiliser pour plus de lisibilité. Noter également que $val n'est pas entouré par des guillemets quand nous l'utilisons comme clé de type chaîne de caractères. Dans le cas 2 la valeur du tableau etus est de type tableau. Cette syntaxe nous permet de déclarer des tableaux de dimension n (n>1).
Remarques
- Pour eviter toute confusion avec les constantes de même nom, la valeur d'une clé de type chaîne de caractère doit être encadré par des guillemets.
Fonctions sur les tableaux
PHP dispose de nombreuses fonctions pour la gestion et la manipulation de tableaux. Le tableau suivant en liste quelques unes avec des exemples d'utilisation.
Fonctions |
Exemple |
Description |
count, sizeOf |
count($etus) |
renvoient le nombre d’élément d’un tableau |
in_array |
in_array('Moussa',$etu) |
vérifie si une valeur existe dans un tableau. |
array_key_exist |
array_key_exist('nom',$etu) |
vérifie si une clé existe dans un tableau |
sort, rsort |
sort($etu) |
trie alphanumérique d’un tableau |
implode |
implode(' et ',$etu) |
renvoie les éléments du tableau joints par la chaîne en argument |
explode |
explode(';','1;Diop;Mouss') |
scinde une chaîne pour en faire un tableau |
array_merge |
array_merge($etu,$etu1) |
fusionne plusieurs tableaux en un seul |
Applications
- Dans le repertoire sequence3 à la racine du documentRoot créer pour chaque exemple de cette section un fichier php (exemple14cas1.php, exemple14cas2.php, ...).
- Créer dans le repertoire sequence3 un fichier fonctionsTab.php pour tester les fonctions sur les tableaux.