Les tableaux ============= **Généralités :** * On ne doit pas déclarer leur taille au prélable * Deux types de tableau : * Les tableaux indexés numériquement Ce sont les tableaux classiques, que l’on connaît en programmation. Le mot-clef pour les créer est array(). On peut accéder à chaque élément par son index, qui commence à zéro. * Les tableaux associatifs * Les tableaux multidimensionnels Les tableaux, en programmation, sont le moyen de grouper des données. Les tableaux indexés numériquement : ------------------------------------- Création : .. code-block:: php $tab = array(valeur0, valeur1, valeurn); /** * Depuis PHP 5.4 */ $tab = [valeur0, valeur1, valeurn]; // c'est cette nomenclature que nous utiliserons. Accès : .. code-block:: php //$nomTableau[index] $tab[0]; $tab[3]; Exemple : .. literalinclude:: file/variabletableau.php :language: php Remarque : Il existe une syntaxe réduite pour ajouter un à un les éléments sans avoir à manipuler les index. .. literalinclude:: file/variabletableau2.php :language: php Il suffit d’omettre l’index, mais en laissant les crochets. Ces trois codes sont équivalements : Les tableaux associatifs : --------------------------- * Les « index » sont des clefs alphanumériques * L’opérateur entre l’élément et sa clef est « => » Création : .. code-block:: php $tab = [clef0 => valeur0,clef1 => valeur1,clef2 => valeurn]; // c'est cette nomenclature que nous utiliserons. Accès : .. code-block:: php //$nomTableau[index] $tab[clef2]; $tab[clef1]; **Exemple** .. literalinclude:: file/variabletableauassociatif.php :language: php Les tableaux multidimensionnels : --------------------------------- * Matrice au sens mathématique * Tableaux de tableaux * Création : $nomTableau = array( array(valeur,valeur), array(valeur,valeur)…); * Accès : $nomTableau[ligne][colonne] * Peut être de N dimensions .. literalinclude:: file/variablematrice.php :language: php Cet exemple permet l’affichage d’une matrice de 3 lignes et 2 colonnes sous forme d’une table HTML. Remarquez la création du tableau: on a directement affecté les valeurs aux différentes positions d’index. **Quelques fonctions utiles pour les tableaux :** * count($array) : compte le nombre d’éléments d’un tableau (=sizeof)‏ * list($var, …) : permet de rassembler les variables $var, ... sous forme de tableau, pour les assigner en une seule ligne * sort($array) : trie le tableau, du plus petit au plus grand (crée de nouvelles clefs)‏ * ksort($array) : trie le tableau sur la valeur des clefs * key($array): retoure la clef courante du tableau * current($array) : retourne l’élément courant du tableau, sans en déplacer le pointeur interne (retourne FALSE si le pointeur est au-delà du dernier élément)‏ * next($array) : avance le pointeur interne du tableau (retourne FALSE si on dépasse le dernier élément)‏ * each($array) : retourne, sous forme d’un tableau la paire clé/valeur courante du tableau array et avance le pointeur de tableau (voir foreach())‏ * implode($string, $array) : représentation en chaîne d’un tableau avec le paramètre $string comme séparateur .. literalinclude:: file/tableautils.php :language: php