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 ) )
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 :
Pour trier votre tableau, vous pouvez définir une fonction de comparaison comme celle-ci :
function cmp($a, $b) { return $b['avgSearchVolume'] - $a['avgSearchVolume']; }
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");
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!