Comment utiliser la fonction usort pour trier personnalisé un tableau en PHP

王林
Libérer: 2023-06-26 12:14:02
original
1597 Les gens l'ont consulté

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 :

  • Cette fonction nécessite deux paramètres. trié, et le deuxième paramètre est une fonction de rappel utilisée pour définir des règles de tri.
  • La fonction de rappel doit définir une règle pour comparer les tailles de deux éléments. Plus précisément, elle doit renvoyer une valeur entière. La signification de la valeur de retour est :
  • supérieur à 0 signifie que le premier élément est plus grand que le. deuxième élément et doit être échangé ; Position
  • égale à 0 signifie que les deux éléments sont égaux et il n'est pas nécessaire d'échanger leurs positions ;
  • inférieur à 0 signifie que le premier élément est plus petit que le deuxième élément et qu'il y a. pas besoin d'échanger les positions.

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)
Copier après la connexion

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);
?>
Copier après la connexion

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
)
Copier après la connexion

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);
?>
Copier après la connexion

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
        )

)
Copier après la connexion

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!

Étiquettes associées:
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!