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 avez souvent besoin de les trier par leurs valeurs tout en préservant les relations clé-valeur. PHP propose deux fonctions spécialisées à cet effet : asort() pour l'ordre croissant et arsort() pour l'ordre décroissant.

Voici comment asort() fonctionne 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 comment les notes sont désormais classées de la plus basse à la plus haute, mais le nom de chaque étudiant reste correctement associé à sa note. C'est l'avantage principal de asort() par rapport à un sort() classique : il préserve l'association entre les clés et les valeurs.

Pour l'ordre décroissant, arsort() fonctionne de manière similaire mais organise les valeurs de la plus élevée à la plus basse :

<?php
arsort($students);
print_r($students);
// Résultat : Array ( [Diana] => 96 [Bob] => 92 [Alice] => 85 [Charlie] => 78 )
?>

Les deux fonctions modifient directement le tableau d'origine, tout comme leurs équivalents pour les tableaux indexés. Cela les rend parfaites pour organiser des données telles que les notes des étudiants, les prix des produits ou tout autre scénario où vous devez trier par valeur tout en gardant les paires clé-valeur intactes.

quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

challenge icon

Défi

Facile

Vous recevrez une entrée : un tableau associatif de noms d'employés et leurs salaires au format JSON. Lisez l'entrée, convertissez la chaîne JSON en un tableau, utilisez arsort() pour trier les employés par salaire par ordre décroissant (du plus élevé au plus bas), et affichez le tableau trié en utilisant print_r().

Format d'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é par ordre décroissant selon les valeurs de salaire, affiché en utilisant print_r()

Aide-mémoire

Utilisez asort() pour trier les tableaux associatifs par valeurs dans l'ordre croissant tout en préservant les relations clé-valeur :

<?php
$students = [
    "Alice" => 85,
    "Bob" => 92,
    "Charlie" => 78,
    "Diana" => 96
];

asort($students);
print_r($students);
// Outputs: Array ( [Charlie] => 78 [Alice] => 85 [Bob] => 92 [Diana] => 96 )
?>

Utilisez arsort() pour trier les tableaux associatifs par valeurs dans l'ordre décroissant :

<?php
arsort($students);
print_r($students);
// Outputs: Array ( [Diana] => 96 [Bob] => 92 [Alice] => 85 [Charlie] => 78 )
?>

Les deux fonctions modifient directement le tableau d'origine et maintiennent l'association entre les clés et les valeurs, contrairement à la fonction sort() classique.

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 par 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