PHP: Array-Sortierung nach Wertlänge optimieren
Wenn Sie mit Arrays von Werten variabler Länge arbeiten, können Sie diese nach ihrer Elementlänge sortieren entscheidend für die effiziente Anordnung von Daten. Dieser Artikel zeigt eine praktische Lösung für dieses häufige Problem.
Lösung:
Die php.net-Website bietet eine Lösung unter Verwendung der usort-Funktion in Verbindung mit einer benutzerdefinierten Komparatorfunktion . Die benutzerdefinierte Funktion sortByLength vergleicht die Längen zweier Array-Elemente und gibt die Differenz zurück. Durch die Angabe einer absteigenden Reihenfolge beim Vergleich werden beim Sortieren des Arrays die längsten Array-Werte zuerst angezeigt.
<code class="php">function sortByLength($a,$b){ return strlen($b)-strlen($a); } usort($array,'sortByLength');</code>
Beachten Sie, dass diese Methode eine instabile Sortierung verwendet, was bedeutet, dass gleiche Elemente währenddessen ihre relative Reihenfolge ändern können Sortierung.
Alternativ kann die Funktion uasort verwendet werden, um die ursprünglichen Indizes beizubehalten.
<code class="php">uasort($array, 'sortByLength');</code>
Beispiel:
Um diese Lösung zu veranschaulichen, Betrachten Sie das folgende Array:
<code class="php">$array = array("bbbbb", "dog", "cat", "aaa", "aaaa");</code>
Sortierungsergebnisse:
Mit der Funktion sortByLength würde das sortierte Array wie folgt aussehen:
<code class="php">[ 0 => "bbbbb", 1 => "aaaa", 2 => "aaa", 3 => "cat", 4 => "dog" ]</code>
Währenddessen bleibt die ursprüngliche Reihenfolge der Elemente mit gleicher Länge erhalten.
Das obige ist der detaillierte Inhalt vonWie sortiere ich ein PHP-Array nach Wertlänge?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!