Menu
Coddy logo textTech

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.

challenge icon

Défi

Facile

Vous 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);
?>
quiz iconTestez-vous

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

Entraînez-vous par vous-même : Compilateur PHP en ligne