Sortieren Sie Objekte in einem Array mit PHP und behalten Sie dabei die ursprünglichen Schlüsselnamen bei

PHPz
Freigeben: 2024-05-04 17:12:02
Original
406 Leute haben es durchsucht

Antwort: Verwenden Sie in PHP die Funktion uasort(), um Objekte in einem Array gemäß einer benutzerdefinierten Vergleichsfunktion zu sortieren und dabei die ursprünglichen Schlüsselnamen beizubehalten. Detaillierte Beschreibung: Syntax: uasort($array, $value_compare_func) Regeln der Vergleichsfunktion: Akzeptiert zwei Array-Elemente als Parameter und gibt -1 zurück, wenn der erste Parameter kleiner als der zweite Parameter ist. Gibt 1 zurück, wenn Der erste Parameter ist größer als der zweite Parameter: Definieren Sie eine Student-Klasse, um das Student-Objekt darzustellen. Verwenden Sie die Funktion uasort(), um das Array $students nach dem Alter der Schüler zu sortieren und dabei die ursprünglichen Schlüsselnamen beizubehalten

使用 PHP 对数组中的对象进行排序,保留原始键名

Verwenden Sie PHP, um das $students-Array nach Objekten zu sortieren.

In PHP können Sie die Funktion uasort() verwenden, um Objekte in einem Array zu sortieren und dabei die ursprünglichen Schlüsselnamen beizubehalten. Diese Funktion sortiert die Array-Elemente mithilfe einer vom Benutzer bereitgestellten Vergleichsfunktion in aufsteigender oder absteigender Reihenfolge. uasort() 函数对数组中的对象进行排序,同时保留原始键名。该函数使用用户提供的比较函数,将数组元素按升序或降序排序。

语法

uasort ( array &$array, callable $value_compare_func ) : bool

其中:

  • $array 是要排序的数组,传递引用以便直接修改
  • $value_compare_func
  • Syntax

uasort (array &$array, callable $value_compare_func): bool

wobei:

  • $array das zu sortierende Array ist, übergeben Sie das Referenz also Direkt ändern
  • $value_compare_func ist eine vom Benutzer bereitgestellte Vergleichsfunktion, die zwei Werte als Parameter akzeptiert und ihre Vergleichsergebnisse in aufsteigender oder absteigender Reihenfolge zurückgibt

      Vergleichsfunktion
    • Die Vergleichsfunktion sollte den folgenden Regeln folgen:
    • empfängt zwei Array-Elemente als Parameter
  • gibt einen der folgenden Werte zurück:

-1: Der erste Parameter ist kleiner als der zweite Parameter

0: Die beiden Parameter sind gleich

1: Der erste Der erste Parameter ist größer als der zweite Parameter

🎜Praktischer Fall🎜🎜Stellen Sie sich ein Array mit Schülerobjekten vor. Jeder Schüler verfügt über Namens- und Altersattribute. Wir möchten die Schüler nach Alter in aufsteigender Reihenfolge sortieren und dabei die ursprünglichen Schlüsselnamen beibehalten. 🎜🎜Code🎜
<?php

class Student
{
    public $name;
    public $age;

    public function __construct($name, $age)
    {
        $this->name = $name;
        $this->age = $age;
    }
}

$students = [
    "John Doe" => new Student("John Doe", 25),
    "Jane Smith" => new Student("Jane Smith", 22),
    "Peter Parker" => new Student("Peter Parker", 28)
];

uasort($students, function ($a, $b) {
    return $a->age <=> $b->age;
});

print_r($students);
Nach dem Login kopieren
🎜Ausgabe🎜
Array
(
    [Jane Smith] => Student Object
        (
            [name] => Jane Smith
            [age] => 22
        )
    [John Doe] => Student Object
        (
            [name] => John Doe
            [age] => 25
        )
    [Peter Parker] => Student Object
        (
            [name] => Peter Parker
            [age] => 28
        )
)
Nach dem Login kopieren
🎜Wie Sie sehen können, wurden die Schüler aufsteigend nach Alter sortiert und die ursprünglichen Schlüsselnamen sind immer noch vorhanden. 🎜

Das obige ist der detaillierte Inhalt vonSortieren Sie Objekte in einem Array mit PHP und behalten Sie dabei die ursprünglichen Schlüsselnamen bei. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!