"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment trier un tableau d'objets en fonction des attributs spécifiques de PHP?

Comment trier un tableau d'objets en fonction des attributs spécifiques de PHP?

Publié le 2025-04-15
Parcourir:989

How Can I Sort an Array of Objects in PHP Based on a Specific Property?

Commander un tableau d'objets basés sur une propriété spécifique

lors de la gestion des tableaux d'objets, le tri basé sur des champs spécifiques peut être essentiel pour la gestion des données. Pour ce faire, on peut utiliser la fonction USORT, qui permet la personnalisation du comportement de comparaison.

Fonction de comparaison personnalisée avec USORT:

pour définir une fonction de comparaison personnalisée dans usort, suivez ce modèle:

function cmp($a, $b) {
    return strcmp($a->name, $b->name);
}

usort($your_data, "cmp");

Dans cet exemple, la comparaison est basée sur la propriété "nom" des objets. Vous pouvez remplacer "Name" par n'importe quelle propriété pertinente.

Options de rappel alternatives:

En plus d'utiliser une fonction dédiée, USORT accepte également tout appel comme deuxième argument. Voici quelques alternatives:

  • fonction anonyme (php 5.3):
usort($your_data, function($a, $b) {
    return strcmp($a->name, $b->name);
});
  • méthode de classe:
usort($your_data, array($this, "cmp")); // where "cmp" is a method in the class
  • function Arrow (php 7.4):
usort($your_data, fn($a, $b) => strcmp($a->name, $b->name));

Comparaison des valeurs numériques:

Lors de la commande d'objets basés sur Opérateur de vaisseau spatial pour les comparaisons succinctes:

fn($a, $b) => $a->count - $b->count
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3