Heim > Backend-Entwicklung > PHP-Tutorial > Wie sortiere ich ein mehrdimensionales PHP-Array effizient nach einem verschachtelten Feld?

Wie sortiere ich ein mehrdimensionales PHP-Array effizient nach einem verschachtelten Feld?

DDD
Freigeben: 2024-12-02 00:52:14
Original
867 Leute haben es durchsucht

How to Sort a Multidimensional PHP Array by a Nested Field Efficiently?

Wie sortiere ich ein mehrdimensionales PHP-Array effizient nach einem verschachtelten Feld?

In PHP ist es möglich, auf mehrdimensionale Arrays zu stoßen, die Tabellendaten darstellen , wobei jedes Element ein assoziatives Array von Feld-Wert-Paaren enthält. Die Aufgabe, diese Daten nach einem bestimmten Feld innerhalb der verschachtelten Arrays zu sortieren, kann problemlos gelöst werden.

Betrachten Sie das folgende datenbankähnliche Array:

$data = [
    [
        'name' => 'Sony TV',
        'price' => 600.00
    ],
    [
        'name' => 'LG TV',
        'price' => 350.00
    ],
    [
        'name' => 'Samsung TV',
        'price' => 425.00
    ]
];
Nach dem Login kopieren

Um dieses Array nach dem „ Im Feld „Preis“ kann man die Funktion array_multisort() zusammen mit der Funktion array_column() verwenden, die eine bestimmte Spalte (ein bestimmtes Feld) aus dem mehrdimensionalen Array extrahiert. Mit dem folgenden Snippet wird dies erreicht:

array_multisort(array_column($data, 'price'), SORT_ASC, $data);
Nach dem Login kopieren

Dieser Aufruf ordnet das Array basierend auf dem Feld „Preis“ in aufsteigender Reihenfolge neu an, während die ursprünglichen Schlüssel des äußeren Arrays verworfen werden. Das resultierende sortierte Array wird wie folgt angezeigt:

[
    [
        'name' => 'LG TV',
        'price' => 350.00
    ],
    [
        'name' => 'Samsung TV',
        'price' => 425.00
    ],
    [
        'name' => 'Sony TV',
        'price' => 600.00
    ]
]
Nach dem Login kopieren

Alternativ war für PHP-Versionen vor 8 aufgrund von Referenzübergabebeschränkungen eine zweizeilige Lösung erforderlich:

$col = array_column($data, 'price');
array_multisort($col, SORT_ASC, $data);
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie sortiere ich ein mehrdimensionales PHP-Array effizient nach einem verschachtelten Feld?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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