Trier les tableaux associatifs par valeur
Fait partie de la section Logique & Flux du Journey PHP de Coddy. Leçon 22 sur 68.
Lorsque vous travaillez avec des tableaux associatifs, vous devez souvent les trier selon leurs valeurs tout en préservant les relations clé-valeur. PHP fournit deux fonctions spécialisées à cet effet : asort() pour l’ordre croissant et arsort() pour l’ordre décroissant.
Voici comment fonctionne asort() pour trier par valeurs dans l’ordre croissant :
<?php
$students = [
"Alice" => 85,
"Bob" => 92,
"Charlie" => 78,
"Diana" => 96
];
asort($students);
print_r($students);
// Affiche : Array ( [Charlie] => 78 [Alice] => 85 [Bob] => 92 [Diana] => 96 )
?>Remarquez que les notes sont maintenant classées de la plus basse à la plus élevée, mais que le nom de chaque étudiant reste correctement associé à sa note. C’est le principal avantage de asort() par rapport à sort() classique. Cette fonction préserve l’association entre les clés et les valeurs.
Pour l’ordre descending, arsort() fonctionne de manière similaire, mais arrange les valeurs de la plus élevée à la plus basse :
<?php
arsort($students);
print_r($students);
// Affiche : Array ( [Diana] => 96 [Bob] => 92 [Alice] => 85 [Charlie] => 78 )
?>Les deux fonctions modifient directement le tableau d’origine, tout comme leurs équivalentes pour les tableaux indexés. Elles sont donc parfaites pour organiser des données telles que les notes des étudiants, les prix des produits ou tout scénario dans lequel vous devez trier par valeur tout en conservant les paires clé-valeur intactes.
Défi
FacileVous recevrez une entrée : un tableau associatif de noms d’employés et de leurs salaires au format JSON. Lisez l’entrée, convertissez la chaîne JSON en tableau, utilisez arsort() pour trier les employés par salaire dans l’ordre décroissant (du plus élevé au plus bas), puis affichez le tableau trié avec print_r().
Format de l’entrée : une ligne contenant un objet JSON avec les noms des employés comme clés et les salaires comme valeurs (exemple : {"John":45000,"Sarah":52000,"Mike":38000,"Lisa":61000})
Sortie attendue : le tableau associatif trié dans l’ordre décroissant selon les valeurs de salaire, affiché avec print_r()
Essayez vous-même
<?php
// Lire l'entrée
$input = fgets(STDIN);
// Convertir le JSON en tableau associatif
$employees = (array)json_decode($input, true);
// TODO: Écrivez votre code ci-dessous pour trier le tableau par salaire en ordre décroissant
// Afficher le tableau trié
print_r($employees);
?>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 classementEntraînez-vous par vous-même : Compilateur PHP en ligne