I- Accéder à un élément individuel du tableau
La notation à crochets est utilisée pour accéder, en
lecture ou en écriture, à un élément individuel
du tableau
- $tableau[i] permet d'accéder à l'élément d'indice i du tableau (cas du
tableau nuérique, i étant un entier)
- $tableau[x] permet d'accéder à l'élément de clé "x" du tableau (cas du
tableau associatif, "x" étant une chaine)
- $tableau[] permet d'accéder, en écriture uniquement, à un nouvel élément
du tableau qui se verra affecter un indice entier immédiatement supérieur
au plus grand indice entier existant dans le tableau (0 s'il n'y en a pas)
Exemple:
| <?php $nombres = array("zéro","un","deux","trois",5 => "cinq","six","un" => 1,"sept",-1 => "moins un"); echo $nombres[1],"<br/>"; echo $nombres["un"],"<br/>"; $villes = array("FRANCE" => array("Paris","Lyon","Nantes"),"ITALIE" => array("Rome","Venise")); echo $villes["FRANCE"][0],"<br/>"; echo $villes["ITALIE"][1],"<br/>"; ?> |
Résultat des commandes PHP:
un
1
Paris
Venise
Le principe de substitution des variables dans les chaine délimitées par des guillemets fonctionne avec les tableaux
Exemple:
| <?php $nombres = array("zéro","un","deux","trois",5 => "cinq","six","un" => 1,"sept",-1 => "moins un"); echo "\$nombres[1] = $nombres[1]<br/>"; echo "\$nombres[\"un\"] = $nombres[un]<br/>"; echo "\$nombres[\"un\"] = {$nombres['un']}<br/>"; $villes = array("FRANCE" => array("Paris","Lyon","Nantes"),"ITALIE" => array("Rome","Venise")); echo "\$villes[\"FRANCE\"][0] = $villes[FRANCE][0]<br/>"; echo "\$villes[\"ITALIE\"][1] = $villes[ITALIE][1]<br/>"; ?> |
Résultat des commandes PHP:
$nombres[1] = un
$nombres["un"] = 1
$nombres["un"] = 1
$villes["FRANCE"][0] = Array[0]
$villes["FRANCE"][0] = Paris
$villes["ITALIE"][1] = Array[1]
II- Parcourir le tableau
De nombreuses méthodes peuvent être utilisées pour parcourir un tableau à
l'aide des constructions suivantes:
- la structure de contrôle itérative for,
- la structure de contrôle itérative while,
- la structure de parcours de tableau foreach
FOREACH
Exemple:
| <?php //initialisation d'un tableau $nombres = array("zéro","un","deux","zéro" => 0,"un" => 1,"deux" => 2); //parcours du tableau avec la première syntaxe echo "Première syntaxe:<br/>"; foreach($nombres as $nombre) { echo "$nombres<br/>"; } //parcours du tableau avec la deuxième syntaxe echo "Deuxième syntaxe:<br/>"; foreach($nombres as $clé => $ nombre) { } ?> |
Résultat de la commande PHP:
Première syntaxe:
zéro
un
deux
0
1
2
Deuxième syntaxe:
0 => zéro
1 => un
2 => deux
zéro => 0
un => 1
deux => 2
Affectation du contenu du tableau en modifiant une valeur dans celui-ci:
Exemple:
| <?php // initialisation d'un tableau $nombres = array("zéro","un","deux","zéro" => 0,"un" => 1,"deux" =>2); // parcours du tableau pour le modifier (mauvaise méthode on modifie la variable de récupération de donnée du tableau) foreach($nombres as $clé => $nombre) { $nombre = "($nombre)", //mettre le nombre entre () } // parcours du tableau pour l'afficher echo "Résultat de la mauvaise méthode: <br/>"; foreach($nombres as $clé => $nombre) { echo "$clé => $nombre <br/>"; } // parcours du tableau pour le modifier (bonne méthode) foreach($nombres as $clé => $nombre) { $nombres[$clé] = "($nombre)"; //mettre le nombre entre () } // parcours du tableau pour l'afficher echo "Résultat de la bonne méthode: <br/>"; foreach($nombres as $clé => $nombre) { echo "$clé => $nombre <br/>"; } ?> |
Résultat de la commande PHP:
Résultat de la mauvaise méthode:
0 => zéro
1 => un
2 => deux
zéro => 0
un => 1
deux => 2
Résultat de la bonne méthode:
0 => (zéro)
1 => (un)
2 => (deux)
zéro => (0)
un => (1)
deux => (2)
WHILE
Exemple:
| <?php $nombres = array("zéro","un","deux","zéro" => 0,"un" => 1,"deux" =>2); reset ($nombres); // ici le reset est important while (list($clé,$nombre) = each($nombres)) { echo "$clé => $nombre <br/>"; } ?> |
Résultat de la commande PHP:
0 => zéro
1 => un
2 => deux
zéro => 0
un => 1
deux => 2
III- Fonctions utiles
Nom |
Rôle |
| count | Compte le nombre d'éléments dans un tableau |
| in_array | Teste si une valeur est présente dans un tableau |
| array_search | Recherche une valeur dans un tableau |
| [a|k] [r] sort | Trie un tableau (plusieurs variantes possibles) |
| explode | Découpe une chaine selon un séparateur et stocke les éléments dans un tableau |
| implode | Regroupe les éléments d'un tableau dans une chaîne à l'aide d'un séparateur |
| str_split | Découpe une chaîne en morceaux de longueur fixe et stocke les éléments dans un tableau |
COUNT
La fonction count permet de connaître le nombre d'éléments
dans une variable
en général, un tableau en particulier
Exemple:
| <?php echo "\$x variable non initialisé => ",count($x),"<br/>"; $x =1; echo "\$x variable de type scalaire => ",count($x),"<br/>"; $x = array(); echo "\$x tableau vide => ",count($x),"<br/>"; $x = array(1,2); echo "\$x tableau de 2 éléments => ",count($x),"<br/>"; ?> |
Résultat de la commande PHP:
$x variable non initialisé => 0
$x variable de type scalaire => 1
$x tableau vide => 0
$x tableau de 2 éléments => 2
IN_ARRAY
La fonction in_array permet
de tester si une valeur est présente dans un tableau
Exemple:
| <?php $nombres = array("zéro","un","deux","zéro" =>0,"un" =>1,"deux" =>2); echo '"un" type indifférent => ',var_dump(in_array("un",$nombres)),"<br/>"; echo '"un" même type => ',var_dump(in_array("un",$nombres,TRUE)),"<br/">; echo '"trois" type indifférent => ',var_dump(in_array("trois",$nombres)),"<br/>"; echo '"trois" même type => ',var_dump(in_array("trois",$nombres,TRUE)),"<br/>"; echo '1 type indifférent => ',var_dump(in_array(1,$nombres)),"<br/>"; echo '1 même type => ',var_dump(in_array(1,$nombres,TRUE)),"<br/>"; echo '3 type indifférent => ',var_dump(in_array(3,$nombres)),"<br/>"; echo '3 même type => ',var_dump(in_array(3,$nombres,TRUE)),"<br/>"; echo '"un" type indifférent => ',var_dump(in_array("un",$nombres)),"<br/>"; echo '"un" même type => ',var_dump(in_array("un",$nombres,TRUE)),"<br/">; ?> |
Résultat de la commande PHP:
"un" type indifférent => bool(true)
"un" même type => bool(true)
"trois" type indifférent => bool(true)
"trois" même type => bool(false)
1 type indifférent => bool(true)
1 même type => bool(true)
3 type indifférent => bool(false)
3 même type => bool(false)
"1" type indifférent => bool(true)
"1" même type => bool(false)
ARRAY_SEARCH
La fonction array_search permet
de chercher un élément dans un tableau et de récupérer la clé de cet élément,
s'il est présent
Exemple:
| <?php $nombres = array("zéro","un","deux","zéro" => 0,"un" =>1,"deux" => 2); echo '"un" type indifférent => ', var_dump(array_search("un",$nombres)),"<br/>"; echo '"un" même type => ', var_dump(array_search("un",$nombres,TRUE)),"<br/>"; echo '"trois" type indifférent => ', var_dump(array_search("trois",$nombres)),"<br/>"; echo '"un" même type => ', var_dump(array_search("trois",$nombres,TRUE)),"<br/>"; echo '1 type indifférent => ', var_dump(array_search(1,$nombres)),"<br/>"; echo '1 même type => ', var_dump(array_search(1,$nombres)),"<br/>"; echo '3 type indifférent => ', var_dump(array_search(3,$nombres)),"<br/>"; echo '3 même type => ', var_dump(array_search(3,$nombres)),"<br/>"; echo '"1" type indifférent => ', var_dump(array_search("1",$nombres)),"<br/>"; echo '"1" même type => ', var_dump(array_search("1",$nombres,TRUE)),"<br/>"; ?> |
Résultat de la commande PHP:
"un" type indifférent => int(1)
"un" même type => int(1)
"trois" type indifférent => string(4) "zéro"
"un" même type => bool(false)
1 type indifférent => string(2) "un"
1 même type => string(2) "un"
3 type indifférent => bool(false)
3 même type => bool(false)
"1" type indifférent => string(2) "un"
"1" même type => bool(false)
[A|K][R]
SORT
Les fonctions
sort, rsort, asort, arsort, ksort et krsort permettent
de trier un tableau selon différentes variantes
Avec
| tableau | Tableau à trier |
| indicateur | Paramètre optionnel permettant de modifier le comportement du tri: - SORT_REGULAR (valeur par défaut): compare les éléments normalement (ne modifie pas les types) - SORT_NUMERIC : compare les éléments numériquement - SORT_STRING: compare les éléments comme des chaines de caractères - SORT_LOCALE_STRING: compare les éléménts en utilisant la configuration locale définie par la fonction SETLOCALE |