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
Mary-Kate OlsenOriginal
2024-12-23 12:21:11962Durchsuche

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
        )
)

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;
}

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;
});

PHP 7:

Verwenden Sie den Raumschiffoperator:

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

PHP 7.4:

Benutze einen Pfeil Funktion:

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

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;
});

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!

Stellungnahme:
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