Maison > développement back-end > tutoriel php > Tri avancé des tableaux PHP : comparateurs personnalisés et fonctions anonymes

Tri avancé des tableaux PHP : comparateurs personnalisés et fonctions anonymes

王林
Libérer: 2024-04-27 11:09:02
original
510 Les gens l'ont consulté

En PHP, il existe deux manières de trier un tableau dans un ordre personnalisé : Comparateur personnalisé : implémentez l'interface Comparable et spécifiez les règles de comparaison des deux objets. Fonction anonyme : créez une fonction anonyme en tant que comparateur personnalisé pour comparer deux objets par rapport à un critère.

PHP 数组高级排序:自定义比较器和 匿名函数

Tri avancé PHP des tableaux : comparateurs personnalisés et fonctions anonymes

En PHP, trier un tableau dans un ordre personnalisé nécessite des fonctionnalités au-delà de ce que les fonctions de tri standard peuvent fournir. Les comparateurs personnalisés et les fonctions anonymes fournissent un mécanisme de tri plus flexible que les fonctions intégrées telles que sort() et rsort(). sort()rsort() 等内置函数更灵活的排序机制。

自定义比较器

自定义比较器是一种实现 Comparable 接口的类,它定义了如何比较两个对象。实现 compareTo()

Comparateur personnalisé

Un comparateur personnalisé est une classe qui implémente l'interface Comparable, qui définit comment comparer deux objets. Implémentez la méthode compareTo() pour spécifier quel objet est considéré comme supérieur, inférieur ou égal à un autre objet.

class CustomComparator implements Comparable {
    public function compareTo($a, $b): int {
        if ($a == $b) {
            return 0;
        }
        return $a > $b ? 1 : -1;
    }
}
Copier après la connexion

Fonctions anonymes

Les fonctions anonymes sont des fonctions sans nom qui peuvent être créées à la volée et transmises en tant que paramètres. Ils sont souvent utilisés pour créer des comparateurs personnalisés :

$comparator = function($a, $b) {
    if ($a == $b) {
        return 0;
    }
    return $a > $b ? 1 : -1;
};
Copier après la connexion

Exemple pratique

Considérons un tableau contenant les noms et les scores des étudiants :

$students = [
    ['name' => 'Alice', 'score' => 85],
    ['name' => 'Bob', 'score' => 90],
    ['name' => 'Carol', 'score' => 80],
];
Copier après la connexion
Approche du comparateur personnalisé

$comparator = new CustomComparator();
usort($students, [$comparator, 'compareTo']);
Copier après la connexion

🎜Approche des fonctions anonymes🎜🎜
usort($students, function($a, $b) {
    return $a['score'] <=> $b['score'];
});
Copier après la connexion
🎜Au-dessus du code va trier le tableau par scores des élèves, du plus petit au plus grand : 🎜
[
    ['name' => 'Carol', 'score' => 80],
    ['name' => 'Alice', 'score' => 85],
    ['name' => 'Bob', 'score' => 90],
];
Copier après la connexion

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