Heim > Artikel > Backend-Entwicklung > Wie sortiere ich ein assoziatives Array alphabetisch nach numerischem Wert und Schlüssel?
Arrays nach numerischen Werten und Schlüsseln sortieren
In der Programmierung treten Situationen auf, in denen wir assoziative Arrays nach bestimmten Kriterien sortieren müssen. Ein solches Szenario ist das Sortieren eines Arrays nach numerischen Werten und dann nach Schlüsseln.
Angenommen, wir haben ein Array mit Zeichenfolgenschlüsseln und numerischen Werten, die das Vorkommen von Tags darstellen:
$arrTags = [ 'mango' => 2, 'orange' => 4, 'apple' => 2, 'banana' => 3 ];
Unser Ziel ist die Anzeige Zuerst werden die Tags in einer Liste mit dem höchsten Vorkommen angezeigt. Bei gleichem Vorkommen werden die Tag-Namen alphabetisch sortiert. Dies würde zu Folgendem führen:
orange (4) banana (3) apple (2) mango (2)
Während die Funktion arsort() anfänglich die Werte sortieren kann, kann sie die alphabetische Reihenfolge der Schlüssel nicht beibehalten, wenn mehrere Werte gleich sind.
Wie vorgeschlagen von Scott Saunders können wir die Funktionen array_keys() und array_values() verwenden, um diese Einschränkung zu überwinden:
array_multisort(array_values($arrTags), SORT_DESC, array_keys($arrTags), SORT_ASC, $arrTags);
Diese Kombination von Funktionen ermöglicht es uns, die Schlüssel und Werte des Arrays direkt zu manipulieren und so letztendlich die gewünschte Sortierung zu erreichen Verhalten. Indem wir die Werte in absteigender Reihenfolge und dann die Schlüssel in aufsteigender Reihenfolge sortieren, erhalten wir unsere gewünschte Ausgabe.
Das obige ist der detaillierte Inhalt vonWie sortiere ich ein assoziatives Array alphabetisch nach numerischem Wert und Schlüssel?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!