Wie sortiere ich ein assoziatives Array nach numerischen Werten und Schlüsseln in absteigender Reihenfolge?

Barbara Streisand
Freigeben: 2024-11-12 06:22:01
Original
722 Leute haben es durchsucht

How to Sort an Associative Array by Numeric Values and Keys in Descending Order?

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
];
Nach dem Login kopieren

sollte ausgegeben werden als:

orange (4)  
banana (3) 
apple (2) 
mango (2)
Nach dem Login kopieren

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);
Nach dem Login kopieren

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!

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