Top Code 2024, les challenges sont de nouveau disponibles dans les boards pour les participant(e)s => Boards

Manipulation de tableaux et collections en PHP

Introduction aux Collections en partant des fonctions natives de PHP.

→ Corrigé du Challenge : Coach de foot

PHP propose nativement de nombreuses fonctions pour manipuler les tableaux (array en anglais) et leurs éléments : combinaisons, tris, filtre, recherche, ajout d’élément, découpage, etc.

Aperçu des fonctions PHP liées aux tableaux (array).

C’est difficile, voire impossible de toutes les connaître. Par contre, il est bon de garder en tête, quand on a un tableau à manipuler, de jeter un œil à la documentation pour s’assurer que le traitement souhaité n’existe pas déjà !

Dans le challenge Coach de foot, il est donc question de manipulation d’un tableau qui contient les caractéristiques des joueurs. Et tout peut se résoudre en utilisant des fonctions existantes.

Avec les fonctions natives de PHP pour manipuler les tableaux

arsort($joueurs);

$joueurs = array_slice($joueurs, 0, 11, true);

$joueurs = array_keys($joueurs);

$reponse = implode('-', $joueurs);

Explications

  • On commence par trier (sort) les données avec arsort, de façon décroissante (reverse), tout en conservant les clés (associative). arsort fonctionne ici par référence, c’est-à-dire que c’est directement ce qui est passé en paramètre qui est modifié, le tableau trié n’est pas retourné.
  • array_slice permet de ne garder qu’une portion du tableau. « true » permet encore une fois de conserver les clés.
  • array_keys permet de ne garder que les clés.
  • implode permet de « coller » chaque valeur du tableau avec une « glue » donnée, ici un tiret « -« .

Pour aller + loin, retrouve notre guide complet des tableaux (array) en PHP.

Avec les Collections

$reponse = collect($joueurs)
		->sortDesc()
		->slice(0, 11)
		->keys()
		->implode('-');

Explications

  • Les collections sont un outil puissant pour manipuler des tableaux en PHP. Ils permettent principalement d’avoir une syntaxe plus homogène et très objet pour manipuler des tableaux.
  • PHP peut avoir ce défaut, surtout pour les fonctions liées aux tableaux, de présenter des comportements différents. On a vu au-dessus que asort fonctionnait par exemple par référence. L’ordre des paramètres peut aussi varier dans certaines fonctions. Collection corrige tout ça.

La documentation complète : Les Collections.

Utiliser les collections dans la sandbox PHP

Le fichier composer.json de la sandbox PHP peut être ajusté pour rajouter d’autres packages.

Pour les collections, la ligne à rajouter :

"illuminate/collections": "*"

Puis lancer la commande composer update.


Qui a codé ce superbe contenu ?

Keep learning

Autres contenus à découvrir


Ta newsletter chaque mois

Corrigés, challenges, actualités, veille technique... aucun spam.