Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann ich ein mehrdimensionales Array in PHP mit „usort()' und „uasort()' sortieren?

Wie kann ich ein mehrdimensionales Array in PHP mit „usort()' und „uasort()' sortieren?

Susan Sarandon
Susan SarandonOriginal
2024-12-27 03:41:09482Durchsuche

How Can I Sort a Multi-Dimensional Array in PHP Using `usort()` and `uasort()`?

Sortieren eines mehrdimensionalen Arrays nach Wert

Viele Situationen treten auf, in denen die Notwendigkeit besteht, ein mehrdimensionales Array zu sortieren. Dies kann durch die Verwendung einer benutzerdefinierten Vergleichsfunktion innerhalb der Funktion usort() erreicht werden.

Sortieren nach einem einzigen Schlüssel mit usort()

Zum Sortieren Wenn wir das gegebene Array mit dem Wert des Schlüssels „order“ vergleichen, können wir eine Sortierfunktion wie folgt definieren:

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

usort($myArray, 'sortByOrder');

Alternativ können wir eine anonyme Funktion verwenden Funktion:

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

Mehrdimensionale Sortierung

Dieser Ansatz kann erweitert werden, um mehrdimensionale Arrays zu sortieren. Um beispielsweise nach „Reihenfolge“ und dann nach „Unterordnung“ zu sortieren:

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

Schlüsselzuordnungen mit uasort() beibehalten

Wenn Sie Schlüsselzuordnungen beibehalten müssen , verwenden Sie uasort(). Zum Vergleich siehe den Vergleich der Array-Sortierfunktionen im Handbuch.

Das obige ist der detaillierte Inhalt vonWie kann ich ein mehrdimensionales Array in PHP mit „usort()' und „uasort()' sortieren?. 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