Trier les tableaux associatifs par clé
Fait partie de la section Logique & Flux du Journey PHP de Coddy — leçon 23 sur 68.
Bien que le tri par valeurs soit utile, vous devez parfois organiser les tableaux associatifs par leurs clés à la place. PHP propose ksort() pour un ordre de clés croissant et krsort() pour un ordre de clés décroissant, les deux conservant les relations clé-valeur cruciales.
Voici comment ksort() trie un tableau par ordre alphabétique selon ses clés :
<?php
$settings = [
"theme" => "dark",
"language" => "english",
"notifications" => "enabled",
"auto_save" => "on"
];
ksort($settings);
print_r($settings);
// Résultat : Array ( [auto_save] => on [language] => english [notifications] => enabled [theme] => dark )
?>Remarquez comment les clés sont maintenant classées par ordre alphabétique de A à Z, tandis que chaque nom de paramètre reste correctement associé à sa valeur. Ceci est particulièrement utile lorsque vous souhaitez afficher des options de configuration ou des éléments de menu de manière prévisible et organisée.
Pour un ordre alphabétique inverse, krsort() fonctionne de manière similaire mais trie les clés de Z à A. Les deux fonctions modifient directement le tableau original, tout comme les autres fonctions de tri PHP, ce qui les rend efficaces pour organiser des données où l'ordre des clés importe plus que l'ordre des valeurs.
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Défi
FacileVous recevrez une entrée : un tableau associatif de noms de départements et leurs allocations budgétaires au format JSON. Lisez l'entrée, convertissez la chaîne JSON en un tableau, utilisez ksort() pour trier les départements par ordre alphabétique selon leurs clés par ordre croissant, et affichez le tableau trié en utilisant print_r().
Format d'entrée : Une ligne contenant un objet JSON avec les noms de départements comme clés et les montants budgétaires comme valeurs (exemple : {"Marketing":75000,"IT":120000,"HR":65000,"Finance":95000})
Sortie attendue : Le tableau associatif trié par ordre alphabétique croissant selon les noms de départements (clés), affiché à l'aide de print_r()
Aide-mémoire
PHP fournit les fonctions ksort() et krsort() pour trier les tableaux associatifs par leurs clés tout en conservant les relations clé-valeur.
ksort() trie les clés par ordre alphabétique croissant (A à Z) :
ksort($array);krsort() trie les clés par ordre alphabétique décroissant (Z à A) :
krsort($array);Les deux fonctions modifient directement le tableau d'origine :
<?php
$settings = [
"theme" => "dark",
"language" => "english",
"notifications" => "enabled",
"auto_save" => "on"
];
ksort($settings);
print_r($settings);
// Résultat : Array ( [auto_save] => on [language] => english [notifications] => enabled [theme] => dark )
?>Essayez vous-même
<?php
// Lire l'entrée
$input = fgets(STDIN);
// Convertir le JSON en tableau
$departments = (array)json_decode($input, true);
// TODO : Écrivez votre code ci-dessous pour trier le tableau par clés
// Afficher le résultat
print_r($departments);
?>Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Logique & Flux
1Fonctions avancées
Fonctions anonymesClosures et 'use'Fonctions fléchéesFonctions de rappelUtilisation de 'call_user_func'Fonctions variablesPassage par référenceFonctions récursivesRécapitulatif : Mélange de fonctions4Tableaux multidimensionnels
Créer un tableau 2DAccéder aux éléments d'un tableau 2DModifier les éléments d'un tableau 2DItérer avec des boucles imbriquéesTableaux associatifs 2DRécapitulatif : Exercice de grille simple2Manipulations avancées de tableaux
Ajouter avec 'array_push'Supprimer avec 'array_pop'Ajouter avec 'array_unshift'Supprimer avec 'array_shift'Fusionner des tableaux indexésFusionner des tableaux associatifsExtraire avec 'array_slice'Valeurs avec 'in_array'Clés avec 'array_search'Récapitulatif : Exercice Playlist3Tri des tableaux
Trier les tableaux indexés par ordre croissantTrier les tableaux indexés par ordre décroissantTrier les tableaux associatifs par valeurTrier les tableaux associatifs par cléTri par ordre naturelTri personnalisé avec 'usort'Récapitulatif : Tri d'un classement