Les Tableaux
Dans quels cas va t-on utiliser les tableaux ?
Jusqu'à présent, nous utilisons des variables pour stocker une information. Par exemple $nom pour stocker le prenom d'une personne qui s'appelle Elise, niveau code ça donne :
echo $nom;
?>
Jusque là ça va. Donc s'il y a une autre personne on mettra $nom2 puis $nom3 etc.
Maintenant disons qu'il y a 150 personnes dont on doit afficher le nom. On va quand même pas créer 150 variables jusque $nom149 ? Non on va créer un tableau et éxécuter cette instruction au temps de fois que nécessaire. On parle dans ce cas de traitement itératif (répétifs). Cela vous rappelle quelque chose ? Les boucles ? Et Oui.
Définitions
En PHP, un tableau est une structure algorithimique qui permet de stocker des données. Il existe deux types de tableau :
- Les tableaux simples (avec un index numérique)
- Les tableaux assiocitatifs (avec un index nommé)
Il s'agit en réalité d'une carte ordonnée (C'est à dire une valeur est associée à une clé)
Comment déclarer et instancier un tableaux
Il existe 2 façons de déclarer (de créer) un tableau
- En utilisant le mot clef : Array
<?php
$tab=Array();
?> - En utilisant les crochets : []
<?php
$tab=[];
?>
A présent que le tableau est créer nous allons l'instancier (c'est à dire lui donner des valeurs). Là aussi, il existe 2 façons de faire.
- soit on les place tout de suite en déclarant le tableau
<?php
$tab=Array("val1","val2","val3");
//ou
$tab=["val1","val2","val3"]; ?> - soit on les insère aprés
<?php
$tab=Array();
$tab[]="val1";
$tab[]="val2";
$tab[]="val3";
?>
Comment parcourir un tableau
Maintenant que nous avons notre tableau, maintenant qu'il a des valeurs à présent, il faut nous en servir.
Pour comprendre, un tableau est un objet qui stocke une information à un index qui va de 1 en 1 en commençant par 0. Par exemple pour notre tableau $tab "val1" est à l'index 0
Donc si j'écris :
PHP affichera :
Donc pour afficher toute les valeurs d'un tableau on va utiliser une petite boucle
un POUR qui commence à 0 et s'arrête à la fin du tableau (ici la fonction count) par pas de 1
for($i=0;$i<count($tab);$i++){
echo $tab[$i]."<br>";
} ?>
Va afficher :
val2
val3
On peut également utiliser une structure de boucle spécifique au tableau FOREACH
foreach($tab as $val){
echo $val;
}
?>
ici PHP va parcourir chaque item du tableau et le stocker dans la variable ici $val
Tableau multidimensionnel
Jusque là on a utilisé des tableaux simple (un index = une valeur) à présent on va voir les tableaux multidimensionnel un index = un tableau
$tab=array(array("val1","val2","val3"),array("val4,"val5","val5"));
?>
Et donc pour le parcourir on devra utiliser 2 boucles imbriquées
for($i=0;$i<count($tab);$i++){
foreach($tab[$i] as $val){
echo "$val<br>";
}
} ?>
Quelques fonctions
Voici quelques fonctions pour utiliser les tableaux
is_array
permet de déterminer si un objet est un tableau ou non
// va afficher 1 ou true
in_array
Indique si la valeur passée en paramètre est dans le tableau
// va afficher 1 ou true
array_rand
Prend une ou plusieurs clés, au hasard dans un tableau
$rand_keys = array_rand($input, 2);
echo $input[$rand_keys[0]] . "\n";
echo $input[$rand_keys[1]] . "\n";
array_key_exists
Indique si la valeur passée en paramètre (utiliser avec les tableaux associatifs)
if (array_key_exists('premier', $search_array)) {
echo "L'élément 'premier' existe dans le tableau";
}
array_search
Permet de retrouver une clé dans un tableau
- $a=["green",yellow","blue"];
- $key=array_search("yellow",$a)//$key=1
array_map
Applique une fonction sur les éléments d'un tableau
❴
return ($n * $n * $n);
}
$a = [1, 2, 3, 4, 5];
$b = array_map('cube', $a);
print_r($b);
Va afficher
(
[0] => 1
[1] => 8
[2] => 27
[3] => 64
[4] => 125
)
array_reverse
Inverse l'ordre des éléments d'un tableau
$reversed = array_reverse($input);
print_r($reversed);
Va afficher
(
[0] => Array
(
[0] => green
[1] => red
)
[1] => 4
[2] => php
)