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

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

Mary-Kate Olsen
發布: 2024-11-03 10:08:29
原創
337 人瀏覽過

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板