Maison > développement back-end > tutoriel php > Comment trier un tableau associatif par valeur numérique et clé par ordre alphabétique ?

Comment trier un tableau associatif par valeur numérique et clé par ordre alphabétique ?

Patricia Arquette
Libérer: 2024-11-11 07:48:03
original
968 Les gens l'ont consulté

How to Sort an Associative Array by Numeric Value and Key Alphabetically?

Tri des tableaux par valeurs numériques et clés

En programmation, des situations surviennent où nous devons trier des tableaux associatifs selon des critères spécifiques. Un de ces scénarios consiste à trier un tableau par valeurs numériques, puis par clés.

Supposons que nous ayons un tableau contenant des clés de chaîne et des valeurs numériques représentant les occurrences de balises :

$arrTags = [
    'mango' => 2,
    'orange' => 4,
    'apple' => 2,
    'banana' => 3
];
Copier après la connexion

Notre objectif est d'afficher les balises d'une liste avec l'occurrence la plus élevée en premier, et en cas d'occurrences égales, trier les noms de balises par ordre alphabétique. Cela entraînerait :

orange (4)
banana (3)
apple (2)
mango (2)
Copier après la connexion

Bien que la fonction arsort() puisse initialement trier les valeurs, elle ne parviendra pas à maintenir l'ordre alphabétique des clés lorsque plusieurs valeurs sont égales.

Comme suggéré par Scott Saunders, nous pouvons utiliser les fonctions array_keys() et array_values() pour surmonter cette limitation :

array_multisort(array_values($arrTags), SORT_DESC, array_keys($arrTags), SORT_ASC, $arrTags);
Copier après la connexion

Cette combinaison de fonctions nous permet de manipuler directement les clés et les valeurs du tableau, pour finalement obtenir le comportement de tri souhaité. En triant les valeurs par ordre décroissant puis en triant les clés par ordre croissant, nous obtenons le résultat souhaité.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal