Faire le quiz close

Les tableaux en PHP 8

#1 Deux catégories de tableaux en PHP open

Un tableau, c'est une liste de couples clé / valeur :

  • Si la clé est un entier, on parle de tableau indexé. La clé est appelée un index. Les index ne sont pas forcément des entiers consécutifs.
  • Si la clé est une chaîne, on parle de tableau associatif.

Attention, dans un tableau, la clé ne peut figurer qu'une seule fois. La valeur peut être de n'importe quel type.

Pour créer un tableau, vous pouvez utiliser la fonction array() ou bien utiliser la syntaxe courte [].

En PHP, comme dans tous les langages, il existe des tableaux à plusieurs dimensions. La particularité, c'est qu'en PHP, vous pouvez utiliser les deux types de tableaux, indexé ou associatif, pour construire un tableau multidimensionnel. Par exemple, pour un tableau de dimension 2, vous pouvez faire un tableau indexé, dans lequel, chaque élément du tableau est un tableau associatif. Ou alors, vous pouvez faire un tableau associatif, dans lequel, chaque élément peut être un tableau indexé.

PHP, en interne, ne fait pas de différence entre ces deux catégories de tableau.

Vous pouvez aussi faire un tableau, à une seule dimension, dans lequel les clés vont être successivement des entiers puis des chaînes. Le langage ne l'interdit pas, mais personnellement, je n'en ai jamais trouvé l'utilité.

#2 Les tableaux indexés open

Dans les documentations techniques liées au PHP, vous allez trouver plusieurs manières de désigner ces tableaux. Vous pouvez trouver : tableau indexé, tableau à indice numérique, tableau numérique voir tableau numéroté. Ne soyez pas dérouté 😎. Tous ces termes sont relatifs au cas où les index sont des entiers.

Résultat de l'exécution en PHP 8.2.1
Tableau PHP indexé de manière automatique

Le tableau peut être créé manuellement élément par élément. Dans ce cas, les index sont "placés à la main". Il n'est pas obligatoire de commencer à l'entier zéro. Les index peuvent être des entiers non consécutifs.

Résultat de l'exécution en PHP 8.2.1
Tableau PHP indexé de manière manuelle

#3 Les tableaux associatifs open

Ci-dessous, tableau associatif $palette est créé avec la syntaxe courte. Ce tableau a deux clés qui sont les chaînes 'couleur' et 'nb' (* nb pour Noir et Blanc).

Vous pouvez mettre une virgule après le dernier élément. De cette manière, si jamais, au cas où, un beau jour 😉, vous ajoutiez un élément et bien la virgule serait déjà là. Super ! 🤔

Résultat de l'exécution en PHP 8.2.1
Tableau PHP associatif

#4 Les tableaux multidimensionnels open

C'est facile de transformer le tableau associatif précédent en un tableau multidimensionnel. Pour cela, vous prenez la chaîne 'Rouge \ Vert \ Bleu', vous lui mettez des crochets autour et vous remplacez les backslashes par des virgules. Ainsi la clé 'couleur' aura pour valeur le tableau indexé ['Rouge', 'Vert', 'Bleu']. Et puis vous faites pareil pour la clé 'nb' (* nb pour Noir et Blanc), et là, vous avez un beau tableau à deux dimensions.

Résultat de l'exécution en PHP 8.2.1
Tableau multidimmensionnel première forme

Remarquez que vous pouvez construire votre tableau différemment en utilisant deux variables. La variable $couleur et la variable $nb (* nb pour Noir et Blanc).

Résultat de l'exécution en PHP 8.2.1
Tableau multidimmensionnel deuxième forme

#5 Substitution d'un élément de tableau dans une chaîne open

Pour obtenir la substitution d'un élément de tableau dans une chaîne de caractères, il faut plusieurs conditions :

  1. Tout d'abord, il va falloir entourer l'élément du tableau avec des accolades.
  2. Ensuite, il faut que cet élément contienne une valeur, que PHP puisse convertir en une chaîne.

J'avais déjà commencé à vous montrer ça dans le tuto sur les chaînes de caractères en PHP. Dans ce tuto, je détaille.

Donc, ci-dessous, PHP pourra convertir {$palette['couleur'][1]} qui vaut la chaîne 'Vert'. Par contre, PHP ne pourra pas convertir {$palette['couleur']} qui est un tableau. Pour afficher un tableau, vous pouvez avoir recours à print_r().

Résultat de l'exécution en PHP 8.2.1
Substitution d'un élément de tableau dans une chaîne

#6 Parcours d'un tableau avec foreach open

Ci-dessous, j'utilise la structure foreach pour parcourir ce tableau PHP. Ce tableau a des index qui ne sont pas consécutifs et foreach sait parcourir ce tableau. Avec une boucle for ou while ça ne serait pas possible ou en tout cas pas de manière propre (* Il faudrait tester si chaque élément est défini avant d'y accéder).

La structure foreach a deux formes. La première ne récupère que les valeurs. La deuxième récupère les clés et les valeurs.

Résultat de l'exécution en PHP 8.2.1
Parcours d'un tableau avec foreach

#7 Utilisation de list open

On peut utiliser la fonction list. C'est une fonction, qui est souvent utilisée, lorsque l'on fait des requêtes SQL. Dans ce cas, on a des réponses sous la forme de tableaux. Ces tableaux contiennent des champs, que l'on récupère, en une seule affectation avec list (* C'est une manière de faire, il y en a d'autres).

Résultat de l'exécution en PHP 8.2.1
Utilisation de list

#8 Décomposer un tableau open

L'opérateur de décomposition (* spread operator en anglais) permet de décomposer un tableau en une liste d'éléments. On peut utiliser cette liste pour la fusionner avec une autre. On peut aussi s'en servir pour passer une liste d'arguments à une fonction.

Résultat de l'exécution en PHP 8.2.1
Décomposition d'un tableau