Maison > Article > développement back-end > Comment trier un tableau basé sur deux champs en php
En PHP, lorsque nous devons trier un tableau, nous pouvons utiliser des fonctions intégrées telles que sort() et rsort() pour trier les éléments du tableau. Cependant, nous devons parfois trier en fonction de deux champs du tableau, nous devons alors utiliser la fonction usort().
usort — Trie les valeurs d'un tableau à l'aide d'une fonction de comparaison définie par l'utilisateur
Syntaxe : bool usort (array &$array, callable $value_compare_func)
Cette fonction trie les valeurs d'un tableau en utilisant un spécifié fonction de comparaison. Il convient de noter que cette fonction affecte directement le tableau d'origine et ne renvoie pas le tableau trié.
Scénarios d'utilisation
Lorsqu'il s'agit de certaines applications complexes, il est parfois nécessaire de trier par plusieurs champs, comme le tri par prix d'abord, puis le tri par volume de ventes lorsque le prix est le même, nous devons ensuite utiliser l'usort () pour y parvenir.
Exemple de code
Ce qui suit est un exemple réel d'utilisation de la fonction usort() pour trier un tableau. Supposons que nous ayons une gamme de produits contenant le nom du produit, le prix, le volume des ventes et d'autres informations. Nous devons maintenant trier les produits en fonction du prix et du volume des ventes.
$products = [ [ "name" => "商品A", "price" => 100, "sales" => 200 ], [ "name" => "商品B", "price" => 120, "sales" => 150 ], [ "name" => "商品C", "price" => 80, "sales" => 300 ], ]; function cmp($a, $b) { if ($a['price'] == $b['price']) { return $a['sales'] < $b['sales'] ? 1 : -1; } return $a['price'] > $b['price'] ? 1 : -1; } usort($products, "cmp"); print_r($products);
Résultat d'exécution :
Array ( [0] => Array ( [name] => 商品C [price] => 80 [sales] => 300 ) [1] => Array ( [name] => 商品A [price] => 100 [sales] => 200 ) [2] => Array ( [name] => 商品B [price] => 120 [sales] => 150 ) )
Ici, nous définissons une fonction cmp(), qui est utilisée pour comparer le prix et le volume des ventes de deux produits, et les trier par ordre de petit à grand prix et de grand à petit volume de ventes. Utilisez ensuite la fonction usort() pour trier le tableau de produits et imprimer les résultats triés.
Résumé
L'utilisation de la fonction usort() permet de trier de manière flexible les tableaux et de trier en fonction de plusieurs champs pour répondre à des exigences d'application plus complexes. Il convient de noter ici que la fonction de tri compare deux éléments du tableau, donc $a et $b représentent respectivement deux éléments du tableau. La fonction doit renvoyer l'une des trois valeurs de nombre positif, de nombre négatif et 0. , indiquant que le rapport $a $b est plus grand, plus petit ou égal.
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!