Menu
Un exemple d'un tableau, contenu de la variable $prenoms
:
Clé |
Valeur |
---|---|
0 |
François |
1 |
Michel |
2 |
Nicole |
3 |
Véronique |
4 |
Benoît |
… |
… |
$prenoms
est un array : c'est ce qu'on appelle une variable « tableau ».
Dans un array, les valeurs sont rangées dans des « cases » différentes. Ici, nous travaillons sur un array numéroté, c'est-à-dire que chaque case est identifiée par un numéro. Ce numéro est appelé clé.
Attention ! Un array numéroté commence toujours à la case n°0 .
Pour créer un tableau numéroté en PHP, on utilise la fonction array
.
Cet exemple vous montre comment créer l'array $prenoms
:
Si vous ne voulez pas avoir à écrire vous-mêmes le numéro de la case que vous créez, vous pouvez laisser PHP le sélectionner automatiquement en laissant les crochets vides :
Pour afficher un élément, il faut donner sa position entre crochets après $prenoms
. Cela revient à dire à PHP :
« Affiche-moi le contenu de la case n°1 de $prenoms
. »
Pour faire cela en PHP, il faut écrire le nom de la variable, suivi du numéro entre crochets. Pour afficher « Jules », on doit donc écrire :
Si vous oubliez de mettre les crochets, ça ne marchera pas (ça affichera juste « Array »…). Dès que vous travaillez sur des arrays, vous êtes obligés d'utiliser les crochets pour indiquer dans quelle « case » on doit aller chercher l'information, sinon PHP ne sait pas quoi récupérer.
Exercice 1: On a le tableau suivant: $tab = array('0','Karim','TEST','Cahier')
Quelle est la valeur $tab[1] , $tab[5] .
Exercice 2: Créer un tableau avec les valeurs suivantes: php, sql, html, css, jquery
Les tableaux associatifs fonctionnent sur le même principe, sauf qu'au lieu de numéroter les cases, on va les étiqueter en leur donnant à chacune un nom différent.
Beaucoup étulisés lors de la manipulation des données issues d'un formulaire.
Exemple: $_POST est une variable globale (tableau).
Pour en créer un, on utilisera la fonction array : array ( 'clé' => 'valeur, 'clé1' => 'valeur1', ...)
Vous remarquez qu'on écrit une flèche (=>
) pour dire « associé à ». Par exemple, on dit « ville » associée à « Marseille ».
Nous avons créé un tableau qui ressemble à la structure suivante :
Clé |
Valeur |
---|---|
prenom |
Fadel |
nom |
Hadek |
adresse |
3 Rue du Paradis |
ville |
Bressuire |
Il est aussi possible de créer le tableau case par case, comme ceci :
Pour afficher un élément, il suffit d'indiquer le nom de cet élément entre crochets, ainsi qu'entre guillemets ou apostrophes puisque l'étiquette du tableau associatif est un texte.
Par exemple, pour extraire la ville, on devra taper : echo $coordonnees['ville'];
Comme vous l'avez vu dans mes exemples, ils ne servent pas à stocker la même chose…
Les arrays numérotés permettent de stocker une série d'éléments du même type, comme des prénoms. Chaque élément du tableau contiendra alors un prénom.
Les arrays associatifs permettent de découper une donnée en plusieurs sous-éléments. Par exemple, une adresse peut être découpée en nom, prénom, nom de rue, ville…
Exercice 3:
a) Créer un tableau associatif avec les valeurs suivantes : clés ( maths,français,histoire,svt) et valeurs( Hadek, Vion,Cap,Pascal).
b) Afficher les valeurs de ce tableau dans une table HTML (utiliser foreach)
1) La boucle for
-tester se code pour voir le résultat?
On peut avoir le nombre des valeurs d'un tableau à l'aide de la fonction:
array_count_values
2) La boucle foreach
foreach
C'est une sorte de boucle for
spécialisée dans les tableaux.
-tester ce code?
3) print_r et var_dump
print_r
ou var_dump C'est une sorte de echo
spécialisé dans les arrays.
Il faut donc utiliser la balise HTML <pre> qui nous permet d'avoir un affichage plus correct.
Tester ce code?
Pour afficher que les éléments:
Tester ce code ?
Pour afficher les clés et les valeurs:
le résultat:
prenom vaut HADEK
nom vaut Fadel
adresse vaut 3 Rue du Paradis
ville vaut Bressuire
2) print_r ou var_dump
Exercice :
Ecrit le programme qui affiche les valeurs et les clés d'un tableau dans un tableau html comme suit:
clé | valeur |
prenom | Hadek |
... | ... |
Nous allons maintenant faire des recherches dans des arrays. Cela vous sera parfois très utile pour savoir si votre array contient ou non certaines informations.
Nous allons voir trois types de recherches, basées sur des fonctions PHP :
array_key_exists
: pour vérifier si une clé existe dans l'array : <code><?php array_key_exists('cle', $array); ?></code>
in_array
: pour vérifier si une valeur existe dans l'array ;
exemple:
array_search
: pour récupérer la clé d'une valeur dans l'array.
si elle a trouvé la valeur, array_search
renvoie la clé correspondante (c'est-à-dire le numéro si c'est un array numéroté, ou le nom de la clé si c'est un array associatif);
si elle n'a pas trouvé la valeur, array_search
renvoie false
.
exemple:
Exercice 5 :
Remplacer la boucle normale par une boucle foreach pour imprimer le tableau ci-après.
1 | Janvier | 2 | Février | 3 | Mars |
4 | Avril | 5 | Mai | 6 | Juin |
7 | Juillet | 8 | Aout | 9 | Septembre |
10 | Octobre | 11 | Novembre | 12 | Décembre |
Exercice 6:
Ecrire à l'aide des tableaux php un programme capable d'afficher un dicton déffirent à chaque deux heures de la journée:
Ce sont des tableaux de tableaux.
Explications :
Pour créer une matrice, nous devons mettre en place un tableau de tableaux. A chaque index numérique (ligne du tableau), nous associons un nouveau tableau de 3 cases (qui représente les 3 colonnes de la ligne). Si nous souhaitons accéder à la case du milieu du jeu de morpion, nous devons nous rendre à la ligne n°2 (index 1) et à la colonne n°2 (index 1). Ce qui donne :Accès à la valeur de coordonnées (1,1)
Accès à la valeur de coordonnées (1,1)
Concrètement, pour accéder à une valeur d'une matrice, il faut y faire référence de cette manière :
Principe d'accès à une valeur d'une matrice
la Matrice[ numéroDeLigne ][ numéroDeColonne ]
Exemple d'un tableau multidimensionnelle: La variable globale $_FILESExercice 7:
1- Créer une matrice(3,3) avec les valeurs de 0 à 8.
2- Créer une matrice(3,3) avec les valeurs de 10 à 18.
3- Fait la somme des deux matrice à l'aide des foreach
Exercice 8:
1- Créer un formulaire capable de receptionner les valeurs d'une matrice (3,3)
2 - Afficher les valeurs de cette matrice.
voir la démo