Heim >Backend-Entwicklung >PHP-Tutorial >Wie sortiere ich ein PHP-Array nach Wertlänge?

Wie sortiere ich ein PHP-Array nach Wertlänge?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-03 10:08:29332Durchsuche

How to Sort a PHP Array by Value Length?

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!

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