„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie sortieren Sie eine Reihe von Objekten nach bestimmten Attributen in PHP?

Wie sortieren Sie eine Reihe von Objekten nach bestimmten Attributen in PHP?

Gepostet am 2025-04-15
Durchsuche:638

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

bestellen ein Array von Objekten, die auf einer bestimmten Eigenschaft basieren

Bei der Behandlung von Objekten von Objekten können sie basierend auf bestimmten Feldern für die Datenverwaltung sein. Um dies zu erreichen, kann man die Usort -Funktion verwenden, die die Anpassung des Vergleichsverhaltens ermöglicht.

benutzerdefinierte Vergleichsfunktion mit usort 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 eine relevante Eigenschaft ersetzen.

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

usort($your_data, "cmp");

Abgesehen davon, dass usort eine dedizierte Funktion verwendet, akzeptiert Usort auch jeden Anruf als zweites Argument. Hier sind einige Alternativen:

anonyme Funktion (php 5.3):

  • usort ($ your_data, function ($ a $ b) { return strcmp ($ a-> name, $ b-> name); });
class -Methode:
usort($your_data, function($a, $b) {
    return strcmp($a->name, $b->name);
});
  • usort ($ your_data, array ($ this, "cmp"); // wobei "cmp" eine Methode in der Klasse
Arrow-Funktion (php 7.4):
usort($your_data, function($a, $b) {
    return strcmp($a->name, $b->name);
});
  • usort ($ your_data, fn ($ a, $ b) => StRCMP ($ a- $ b-> name));
  • verglichen numerische Werte:
usort($your_data, function($a, $b) {
    return strcmp($a->name, $b->name);
});
Bei der Bestellung von Objekten basierend auf numerischen Eigenschaften. Spaceship-Operator für prägnante Vergleiche:

fn ($ a, $ b) => $ a-> count $ b-> count

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3