首頁 >後端開發 >php教程 >如何以值長度對 PHP 陣列進行排序?

如何以值長度對 PHP 陣列進行排序?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-11-03 10:08:29333瀏覽

How to Sort a PHP Array by Value Length?

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>
排序結果:

使用sortByLength 函數,排序後的陣列將如下所示:同時,等長元素的原始順序被保留。

以上是如何以值長度對 PHP 陣列進行排序?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn