Les tableaux en PHP sont des variables qui peuvent contenir plusieurs valeurs à la fois. Ils peuvent être indexés ou associatifs et peuvent aussi avoir plusieurs dimensions.
Tableaux indexés
Un tableau indexé contient des indices numériques qui indexent le contenu souhaité. Ces indexes commencent par défaut de 0 et s'incrémentent de 1 à chaque fois.
Pour créer un tableau indexé en PHP il existe plusieurs méthodes:
Première méthode
$tab=array("PHP","Coté serveur",60);
Ici, nous avons créé un tableau indexé au nom de $tab (il s'agit d'une variable). Le tableau contient trois valeurs "PHP", "Coté serveur" et 60.
Vous avez certainement remarqué que les valeurs contenues dans le tableau ne sont pas du même type. En effet, des types différents peuvent cohabiter dans le même tableau (comme pour Javascript).
Dans ce cas la première entrée du tableau $tab est indexée par 0, la deuxième par 1 et la troisième par 2. Alors on aurait pu déclaré le tableau autrement. Il s'agit de la deuxième méthode.
Dans ce cas, la déclaration des indexes et plus explicite. Puisqu'on les manipule directement alors rien ne nous oblige à les incrémenter de 1. Par exemple on peut faire ceci:
Ici les indexes sont implicites et c'est le compilateur qui en déduit les valeurs qui commencent par défaut de 0 et s'incrémentent de 1.
Notez que pour la deuxième et la troisième méthode la première instruction $tab=array() est facultative. Mais le fait de la déclarer est vu comme une bonne habitude.
Tableaux associatifs
Si un tableau indexé contient des indices numériques qui indexent les entrées, un tableau associatif , quant-à lui, contient des clés. Ces clés sont des chaînes de caractères qui permettent d'avoir une idée plus claire sur le contenu indexé.
Par exemple, le dernier tableau créé contient trois valeurs "PHP", "Coté serveur" et 60. Mais on ne sait pas ce que représentent réellement ces trois entrées. Essayons maintenant de les déclarer au sein d'un tableau associatif.
En fait, les trois chaînes "langage", "execution" et "heures" sont les clés du tableau associatif qui pointent respectivement sur les valeurs "PHP", "Coté serveur" et 60. Pour dire qu'une clé pointe sur une valeur on utilise la séquence =>.
Vous avez donc compris que les entrées du tableau désignent:
Langage: PHP
Niveau d’exécution: Coté serveur
Nombre d'heures nécessaires pour en maîtriser les bases: 60 heures
Vous vous dites certainement: "Si mon tableau était plus grand que ça, alors le fait de le déclarer sur la même ligne causerait certainement des erreurs de saisie". En effet vous avez raison. Il y 'aurait beaucoup de doubles cotes ou simples cotes et beaucoup de séquences =>. Alors la probabilité de commettre des erreurs de saisie est plus élevée.
Les tableaux qu'on a vu précédemment contiennent une seule dimensions. Il est toute fois possible de créer des tableaux à plusieurs dimensions, soit directement ou en déclarant les tableaux les uns dans les autres.
Pour simplifier on va voir l'exemple d'un tableau indexé à deux dimensions.
Supposons que nous disposons des trois tableaux à une dimension suivants:
Supposons maintenant que nous voulons mettre ces trois tableaux dans un seul:
$tab=array($tab1 , $tab2 , $tab3);
On schématisant ce tableau on obtient:
A [0][0]
B [0][1]
C [0][2]
D [1][0]
E [1][1]
F [1][2]
G [2][0]
H [2][1]
I [2][2]
Le tableau $tab est donc définit sur deux dimensions. Il faut, par conséquent, déclarer deux crochets pour accéder à l'une des valeurs qu'il contient (un pour la ligne et l'autre pour la colonne).
Donc
echo $tab[0][0]; // Affiche: A
echo $tab[1][2]; // Affiche: F
Parcourir un tableau: structure foreach
Pour parcourir un tableau, la solution la plus classique consiste à utiliser la boucle for ou la boucle while. Cependant, PHP inclue une structure de contrôle qui s'applique spécialement aux tableaux. Il s'agit de la structure foreach.
La structure foreach permet de parcourir un tableau élément par élément. Elle simplifie nettement la parcours des tableaux en nous épargnant la peine de tester des indexes vides ou de connaitre le nombre d'indexes contenus.
La structure foreach accepte comme paramètres: le nom du tableau à parcourir ($tab dans ce cas), suivi du mot clé as suivi d'une variable de notre choix ($elem dans notre cas). La structure foreach parcourt le tableau élément par élément et affecte l'élément en cours à la variable $elem. Les accolades dans ce cas sont facultatives puisqu'une seule instruction est déclarée dans le bloc.
Si le tableau est associatif et on veut prendre en compte la valeur des clés alors le code ressemblera à ceci:
Dans ce cas le mot clé as est suivi de deux variables séparées par la séquence =>. La première variable désigne la clé courante et la deuxième désigne la valeur courante.
Fonctions agissant sur les tableaux
Comme pour les chaînes de caractères, les fonctions qui agissent sur les tableaux sont nombreuses et diversifiées. Cependant, nous nous contenterons des plus utiles:
count($tab) ou sizeof($tab): retourne un entier qui indique le nombre d'entrées du tableau.
in_array($var,$tab): vérifie si la variable $var existe dans le tableau. Si oui la fonction in_array() retourne true sinon elle retourne false.
list($var1,$var2,$var3...): affecte chacune des entrées du tableau respectivement au variables $var1, $var2, $var3...
shuffle($tab): mélange le contenu du tableau en changeant l'indexe des entrées aléatoirement.
sort($tab): trie dans l'ordre alphanumérique les éléments du tableau.
rsort($tab): trie dans l'ordre alphanumérique inverse les éléments du tableau.
array_rand($tab): retourne l'indexe de l'une des entrée du tableau aléatoirement.
array_merge($tab1,$tab2,$tab3...): retourne un seul grand tableau qui contient les éléments des tableaux $tab1, $tab2, $tab3...
implode($sep,$tab) ou join($sep,$tab): retourne une chaîne de caractères constituée des éléments du tableaux séparés par le contenu de la variable $sep.
explode($occ,$str): cette fonction s'applique sur les chaînes de caractères. Elle crée un tableau en éclatant la chaîne $str au niveau des occurrences $occ.