Heim > Artikel > Backend-Entwicklung > Wie sortiere ich ein assoziatives Array nach numerischen Werten und Schlüsseln in absteigender Reihenfolge?
Assoziative Arrays nach numerischen Werten und Schlüsseln sortieren
Gegeben ein assoziatives Array mit Zeichenfolgenschlüsseln und numerischen Werten, möchten Sie das Array nach sortieren absteigende numerische Werte und dann alphabetisch nach Tag-Namen. Beispielsweise sollte das Eingabearray:
$arrTags = [ 'mango' => 2, 'orange' => 4, 'apple' => 2, 'banana' => 3 ];
sollte ausgegeben werden als:
orange (4) banana (3) apple (2) mango (2)
Lösung:
Ein möglicher Ansatz ist die Verwendung usort(). Sie benötigen jedoch eine benutzerdefinierte Vergleichsfunktion, die zuerst nach numerischen Werten und dann nach Schlüsseln sortiert. Dies kann durch Sortieren in zwei Schritten erfolgen: Sortieren Sie zuerst nach absteigenden numerischen Werten und dann nach aufsteigenden Schlüsselwerten.
Um den Code zu vereinfachen, können Sie die Funktionen array_values() und array_keys() verwenden Extrahieren Sie die Werte und Schlüssel in separate Arrays. Verwenden Sie dann array_multisort(), um mehrere Sortierungen für mehrere Arrays durchzuführen. Der folgende Code erzeugt die gewünschte Ausgabe:
array_multisort(array_values($arrTags), SORT_DESC, array_keys($arrTags), SORT_ASC, $arrTags);
Das obige ist der detaillierte Inhalt vonWie sortiere ich ein assoziatives Array nach numerischen Werten und Schlüsseln in absteigender Reihenfolge?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!