Heim > Backend-Entwicklung > PHP-Tutorial > Wie sortiere ich ein mehrdimensionales Array nach Wert in PHP?

Wie sortiere ich ein mehrdimensionales Array nach Wert in PHP?

Mary-Kate Olsen
Freigeben: 2024-12-23 12:21:11
Original
999 Leute haben es durchsucht

How to Sort a Multi-dimensional Array by Value in PHP?

Sortieren eines mehrdimensionalen Arrays nach Wert

In einem mehrdimensionalen Array müssen Sie möglicherweise seine Elemente nach sortieren der Wert eines bestimmten Schlüssels. Betrachten Sie zum Beispiel das folgende Array:

Array
(
    [0] => Array
        (
            [hashtag] => a7e87329b5eab8578f4f1098a152d6f4
            [title] => Flower
            [order] => 3
        )

    [1] => Array
        (
            [hashtag] => b24ce0cd392a5b0b8dedc66c25213594
            [title] => Free
            [order] => 2
        )

    [2] => Array
        (
            [hashtag] => e7d31fc0602fb2ede144d18cdffd816b
            [title] => Ready
            [order] => 1
        )
)
Nach dem Login kopieren

Sortieren nach dem Schlüssel „Reihenfolge“

Um das Array nach dem Schlüssel „Reihenfolge“ zu sortieren, können Sie Folgendes verwenden die Funktion usort(). Hier ist eine umfassende Aufschlüsselung der Verwendung:

PHP 5.2 oder früher:

Definieren Sie zuerst eine Sortierfunktion:

function sortByOrder($a, $b) {
    if ($a['order'] > $b['order']) {
        return 1;
    } elseif ($a['order'] < $b['order']) {
        return -1;
    }
    return 0;
}
Nach dem Login kopieren

PHP 5.3 und höher:

Verwenden Sie eine Anonymität Funktion:

usort($myArray, function($a, $b) {
    if ($a['order'] > $b['order']) {
        return 1;
    } elseif ($a['order'] < $b['order']) {
        return -1;
    }
    return 0;
});
Nach dem Login kopieren

PHP 7:

Verwenden Sie den Raumschiffoperator:

usort($myArray, function($a, $b) {
    return $a['order'] <=> $b['order'];
});
Nach dem Login kopieren

PHP 7.4:

Benutze einen Pfeil Funktion:

usort($myArray, fn($a, $b) => $a['order'] <=> $b['order']);
Nach dem Login kopieren

Mehrdimensionale Sortierung:

Für mehrdimensionale Sortierung ändern Sie die Sortierfunktion so, dass sie auf nachfolgende Sortierelemente verweist, wenn das erste Element Null ist. Zum Beispiel:

usort($myArray, function($a, $b) {
    $retval = $a['order'] <=> $b['order'];
    if ($retval == 0) {
        $retval = $a['suborder'] <=> $b['suborder'];
        if ($retval == 0) {
            $retval = $a['details']['subsuborder'] <=> $b['details']['subsuborder'];
        }
    }
    return $retval;
});
Nach dem Login kopieren

Schlüsselzuordnungen

Wenn Sie Schlüsselzuordnungen pflegen müssen, verwenden Sie uasort() anstelle von usort().

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

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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage