Ordnen eines Arrays von Objekten basierend auf einer bestimmten Eigenschaft
Beim Umgang mit Arrays von Objekten kann es wichtig sein, sie basierend auf bestimmten Feldern zu sortieren Datenmanagement. Um dies zu erreichen, kann man die usort-Funktion verwenden, die die Anpassung des Vergleichsverhaltens ermöglicht.
Benutzerdefinierte Vergleichsfunktion mit usort:
Um eine benutzerdefinierte Vergleichsfunktion zu definieren Folgen Sie in usort diesem Muster:
function cmp($a, $b) { return strcmp($a->name, $b->name); } usort($your_data, "cmp");
In diesem Beispiel basiert der Vergleich auf der Eigenschaft „name“ der Objekte. Sie können „name“ durch jede relevante Eigenschaft ersetzen.
Alternative Callback-Optionen:
Neben der Verwendung einer dedizierten Funktion akzeptiert usort auch jede aufrufbare Eigenschaft als zweites Argument. Hier sind einige Alternativen:
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));
Vergleichen numerischer Werte:
Berücksichtigen Sie beim Ordnen von Objekten basierend auf numerischen Eigenschaften die folgende Vergleichsfunktion :
fn($a, $b) => $a->count - $b->count
Alternativ können Sie in PHP 7 den Spaceship-Operator für verwenden prägnante Vergleiche:
fn($a, $b) => $a->count <=> $b->count
Das obige ist der detaillierte Inhalt vonWie kann ich ein Array von Objekten in PHP basierend auf einer bestimmten Eigenschaft sortieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!