Le tri est l'une des opérations les plus courantes lors de l'utilisation de PHP pour les opérations sur les tableaux. PHP fournit de nombreuses fonctions de tri différentes, y compris la fonction usort. La fonction usort peut trier un tableau selon des règles spécifiées, mais contrairement à d'autres fonctions de tri, elle permet aux utilisateurs de personnaliser les règles de tri.
Cet article expliquera comment utiliser la fonction usort en PHP et comment utiliser la fonction usort pour un tri personnalisé.
1. Le format de base de la fonction usort
Lors de l'utilisation de la fonction usort pour le tri, nous devons faire attention aux points suivants :
En parlant de ça, nous devons comprendre les fonctions anonymes en PHP. Une fonction anonyme est un morceau de code qui n'a pas de nom et qui peut être défini et stocké dans une variable.
Voici le format de base de la fonction usort :
usort(array &$array, callable $cmp_function)
Parmi eux, $array est le tableau qui doit être trié, et $cmp_function est la fonction de rappel utilisée pour définir les règles de tri.
2. Exemples d'utilisation de la fonction usort
Jetons un coup d'œil à un exemple d'utilisation de la fonction usort.
<?php $fruits = array("apple", "banana", "orange", "peach"); function cmp($a, $b) { return strlen($a) - strlen($b); } usort($fruits, "cmp"); print_r($fruits); ?>
Dans l'exemple ci-dessus, nous avons d'abord défini un tableau $fruits, qui contient quatre fruits. Ensuite, nous définissons une fonction de rappel cmp pour implémenter la règle de tri des longueurs de chaîne de petite à grande. Dans la fonction usort, nous passons le tableau $fruits et la fonction cmp comme paramètres. Une fois la fonction exécutée, le tableau $fruits sera trié selon les règles de longueur de chaîne de petit à grand.
Les résultats d'exécution sont les suivants :
Array ( [0] => apple [1] => peach [2] => banana [3] => orange )
3. Utilisez la fonction usort pour un tri personnalisé
En plus d'utiliser la fonction usort pour le tri ordinaire, nous pouvons également définir des règles de tri personnalisées en fonction de nos propres besoins.
Ce qui suit est un exemple. Nous utilisons la fonction usort pour trier un tableau bidimensionnel contenant les noms et les âges des personnes de petit à grand par âge.
<?php $people = array( array('name' => 'Jim', 'age' => 23), array('name' => 'Tom', 'age' => 18), array('name' => 'Lucy', 'age' => 26), array('name' => 'Lily', 'age' => 20), ); function cmp($a, $b) { return $a['age'] - $b['age']; } usort($people, "cmp"); print_r($people); ?>
Dans l'exemple ci-dessus, nous avons défini un tableau bidimensionnel $people, qui contient deux champs : nom et âge. Ensuite, nous définissons une fonction de rappel cmp pour implémenter les règles de tri par âge du petit au grand. Ce qui est renvoyé dans la fonction est $a['age'] - $b['age'], ce qui signifie que le tableau est trié du plus petit au plus grand selon l'âge.
Les résultats en cours sont les suivants :
Array ( [0] => Array ( [name] => Tom [age] => 18 ) [1] => Array ( [name] => Lily [age] => 20 ) [2] => Array ( [name] => Jim [age] => 23 ) [3] => Array ( [name] => Lucy [age] => 26 ) )
Vous pouvez voir que selon les règles que nous avons définies, le tableau $people a été trié du plus petit au plus grand par âge.
Grâce à l'exemple ci-dessus, nous pouvons constater que la fonction usort possède des capacités de tri personnalisées très puissantes. Différentes règles de tri peuvent être implémentées en définissant simplement une fonction de rappel. Mais il convient de noter que la fonction de rappel doit renvoyer une valeur entière pour garantir son bon fonctionnement.
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!