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 ];
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)
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);
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!