Maison  >  Article  >  développement back-end  >  Introduction à l'utilisation de la fonction usort() dans la bibliothèque de fonctions PHP

Introduction à l'utilisation de la fonction usort() dans la bibliothèque de fonctions PHP

王林
王林original
2023-06-27 08:49:141503parcourir

PHP est un langage de programmation largement utilisé avec de nombreuses fonctions couramment utilisées par les développeurs. usort() en fait partie. La fonction principale de usort() est de trier le tableau selon la fonction de comparaison spécifiée. La syntaxe de la fonction

usort() est la suivante :

usort(array $array, callable $cmp_function): bool

Dans le code ci-dessus, $array représente le tableau à trier, et $cmp_function est un fonction de comparaison appelable. La valeur de retour est de type booléen, indiquant si le tri a réussi. $array 表示要排序的数组,$cmp_function 是一个可调用的比较函数。返回值是布尔类型,表示排序是否成功。

下面就对 usort() 函数进行详细介绍。

比较函数

usort() 函数中传入的比较函数必须是可调用的,也就是说可以被调用执行的函数。比较函数一般在调用 usort() 时定义,通过一个匿名函数或是指定函数名称的方式来定义。比如,你可以这样来定义一个比较函数:

function cmp($a, $b) {
    if ($a == $b) {
        return 0;
    }
    return ($a < $b) ? -1 : 1;
}

在这个比较函数中,$a$b 分别代表 usort() 函数传入的要比较的两个参数。根据自己的需求,你可以自定义比较函数的实现方法。比较函数返回值可以是 0、-1 或 1。若返回 0,则代表两个参数相等;若返回 -1,则代表 $a$b 小;若返回 1,则代表 $a$b 大。

使用方法

接下来,我们来看一下如何使用 usort() 函数来对数组进行排序。假设我们有一个数组,其中包含如下元素:

$array = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3];

如果我们想对这个数组进行排序,可以使用 usort() 函数:

usort($array, "cmp");

这里的 "cmp"

Ce qui suit est une introduction détaillée à la fonction usort().

Fonction de comparaison

usort() La fonction de comparaison passée dans la fonction doit être appelable, c'est-à-dire une fonction qui peut être appelée et exécutée. Les fonctions de comparaison sont généralement définies lors de l'appel de usort(), soit via une fonction anonyme, soit en spécifiant le nom de la fonction. Par exemple, vous pouvez définir une fonction de comparaison comme celle-ci :

[1, 1, 2, 3, 3, 4, 5, 5, 6, 9]

Dans cette fonction de comparaison, $a et $b représentent respectivement les valeurs transmises par l'usort () fonction à comparer de deux paramètres. Selon vos propres besoins, vous pouvez personnaliser la méthode d'implémentation de la fonction de comparaison. La valeur de retour de la fonction de comparaison peut être 0, -1 ou 1. Si 0 est renvoyé, cela signifie que les deux paramètres sont égaux ; si -1 est renvoyé, cela signifie que $a est plus petit que $b si 1 est renvoyé, cela signifie que $a est plus grand que $b.

Comment utiliser

Ensuite, voyons comment utiliser la fonction usort() pour trier le tableau. Supposons que nous ayons un tableau contenant les éléments suivants :

$students = [
    ["name" => "Alice", "age" => 18],
    ["name" => "Bob", "age" => 20],
    ["name" => "Charlie", "age" => 19],
];

Si nous voulons trier ce tableau, nous pouvons utiliser la fonction usort() :
    function cmp_age($a, $b) {
        if ($a["age"] == $b["age"]) {
            return 0;
        }
        return ($a["age"] < $b["age"]) ? -1 : 1;
    }
  1. Le "cmp" voici la comparaison que nous avons définie Le nom de la fonction. Après avoir exécuté le code ci-dessus, vous pouvez obtenir le tableau trié : la fonction
  2. usort($students, "cmp_age");
  3. usort() peut non seulement trier les nombres, mais aussi les chaînes, les objets, etc. Imaginons que nous ayons un tableau avec plusieurs objets, chacun avec une valeur d'attribut :
  4. [
        ["name" => "Alice", "age" => 18],
        ["name" => "Charlie", "age" => 19],
        ["name" => "Bob", "age" => 20],
    ]
  5. Si nous voulons trier ces élèves par âge, nous pouvons utiliser la fonction usort() et définir une nouvelle fonction de comparaison :
  6. rrreee
  7. Dans cette fonction de comparaison , nous trions en comparant l'attribut age des objets étudiants. Utilisez la fonction usort() pour trier ce tableau d'étudiants :
  8. rrreee
Après avoir exécuté le code ci-dessus, nous pouvons trier les étudiants en fonction de leur âge :

rrreee

Notes

Lorsque vous utilisez la fonction usort(), vous devez faire attention Les questions suivantes : 🎜🎜🎜La fonction de comparaison transmise doit être appelable, c'est-à-dire une fonction qui peut être appelée et exécutée. 🎜🎜La valeur de retour de la fonction de comparaison doit être 0, -1 ou 1. La fonction 🎜🎜usort() modifiera directement le tableau d'origine, donc lorsque vous l'utilisez, vous devez faire attention à savoir si le tableau sera référencé et utilisé ailleurs. 🎜🎜Lorsqu'il y a deux éléments égaux ou plus dans le tableau, la fonction usort() ne peut pas garantir leur ordre. La fonction 🎜🎜🎜Résumé🎜🎜usort() est une fonction très couramment utilisée dans le développement PHP, elle peut trier les tableaux de manière pratique. Lors de son utilisation, nous devons définir une fonction de comparaison et la transmettre en paramètre à la fonction usort(). Il y a quelques détails à prendre en compte, mais dans l’ensemble, utiliser la fonction usort() est très simple. 🎜

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!

Déclaration:
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