Ordre d'un tableau d'objets en fonction d'une propriété spécifique
Lors de la manipulation de tableaux d'objets, les trier en fonction de champs spécifiques peut être essentiel pour gestion des données. Pour ce faire, on peut utiliser la fonction usort, qui permet de personnaliser le 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é "name" des objets. Vous pouvez remplacer "nom" par n'importe quelle propriété pertinente.
Options de rappel alternatives :
En plus d'utiliser une fonction dédiée, usort accepte également tout appelable comme deuxième argument. Voici quelques alternatives :
usort($your_data, function($a, $b) { return strcmp($a->name, $b->name); });
usort($your_data, array($this, "cmp")); // where "cmp" is a method in the class
usort($your_data, fn($a, $b) => strcmp($a->name, $b->name));
Comparaison de valeurs numériques :
Lorsque vous commandez des objets en fonction de propriétés numériques, tenez compte de la fonction de comparaison suivante :
fn($a, $b) => $a->count - $b->count
Alternativement, en PHP 7, vous pouvez utiliser l'opérateur Spaceship pour des phrases succinctes comparaisons :
fn($a, $b) => $a->count <=> $b->count
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!