Maison > développement back-end > tutoriel php > Comment trier un tableau associatif multidimensionnel en PHP par une clé spécifique ?

Comment trier un tableau associatif multidimensionnel en PHP par une clé spécifique ?

Barbara Streisand
Libérer: 2024-12-04 18:30:12
original
971 Les gens l'ont consulté

How to Sort a Multidimensional Associative Array in PHP by a Specific Key?

Comment trier un tableau associatif par clé en PHP [Dupliquer]

Le tri d'un tableau peut être une tâche courante en programmation, surtout lorsque traiter des structures de données comme des tableaux associatifs en PHP. Ces tableaux sont similaires aux tableaux classiques, mais vous permettent d'accéder aux éléments par clés au lieu d'indices numériques.

Problème :

Vous avez un tableau associatif avec des éléments comme le celui ci-dessous :

Array
(
    [0] => Array
        (
            [text] => tests
            [language] => 
            [advertiserCompetitionScale] => 5
            [avgSearchVolume] => 7480000
            [lastMonthSearchVolume] => 9140000
        )

    [1] => Array
        (
            [text] => personality tests
            [language] => 
            [advertiserCompetitionScale] => 5
            [avgSearchVolume] => 165000
            [lastMonthSearchVolume] => 201000
        )

    [2] => Array
        (
            [text] => online tests
            [language] => 
            [advertiserCompetitionScale] => 5
            [avgSearchVolume] => 246000
            [lastMonthSearchVolume] => 301000
        )

)
Copier après la connexion

Vous souhaitez trier ce tableau par ordre décroissant en fonction du "avgSearchVolume" field.

Solution :

PHP fournit une fonction intégrée appelée usort que vous pouvez utiliser à cette fin. usort prend deux arguments : un tableau à trier et une fonction de comparaison. La fonction de comparaison prend deux éléments du tableau comme arguments et renvoie un entier négatif, zéro ou un entier positif :

  • Un entier négatif si le premier élément doit précéder le deuxième élément.
  • Zéro si les deux éléments sont égaux.
  • Un entier positif si le deuxième élément doit précéder le premier élément.

Pour trier votre tableau, vous pouvez définir une fonction de comparaison comme celle-ci :

function cmp($a, $b)
{
    return $b['avgSearchVolume'] - $a['avgSearchVolume'];
}
Copier après la connexion

Cette fonction soustrait le champ "avgSearchVolume" du premier élément du "avgSearchVolume " champ du deuxième élément. Si le résultat est négatif, cela signifie que le deuxième élément doit précéder le premier élément. S'il est nul, les éléments sont considérés comme égaux. S'il est positif, le premier élément doit précéder le second.

Enfin, vous pouvez appeler usort et passer votre fonction de comparaison comme deuxième argument :

usort($array, "cmp");
Copier après la connexion

Après avoir appelé usort, votre tableau sera trié par ordre décroissant par le champ "avgSearchVolume".

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