PHP:按值長度優化數組排序
使用可變長度值的數組時,可以按元素長度對它們進行排序對於有效地整理資料至關重要。本文示範了此常見問題的實用解決方案。
解決方案:
php.net 網站提供了一種使用 usort 函數與自訂比較器函數結合使用的解決方案。自訂函數 sortByLength 比較兩個陣列元素的長度並傳回差值。透過在比較中指定降序,在對數組進行排序時,最長的數組值首先出現。
<code class="php">function sortByLength($a,$b){ return strlen($b)-strlen($a); } usort($array,'sortByLength');</code>
請注意,此方法使用不穩定的排序,這意味著相等的元素在排序過程中可能會改變其相對順序
或者,可以使用uasort 函數來維護原始索引。
<code class="php">uasort($array, 'sortByLength');</code>
範例:
為了說明此解,請考慮以下陣列:
<code class="php">$array = array("bbbbb", "dog", "cat", "aaa", "aaaa");</code>
排序結果:
排序結果:<code class="php">[ 0 => "bbbbb", 1 => "aaaa", 2 => "aaa", 3 => "cat", 4 => "dog" ]</code>
以上是如何以值長度對 PHP 陣列進行排序?的詳細內容。更多資訊請關注PHP中文網其他相關文章!