PHP數組排序方法比較

sort ( array &$array [, int $sort_flags] )

該函數會對目標數組進行排序,各元素按值由低到高的順序排列.注意,該函數參數是按引用傳遞的, 它並不是返回排序後的數組.相反,它只是對當前數組排序,不論結果如何都不返回任何值.
注意: 本函數爲 array 中的單元賦予新的鍵名.這將刪除原有的鍵名而不僅是重新排序.

$arr = array(9,5,2,6,8,4,3,1); sort($arr); print_r($arr); ?>

輸出:(可以看到鍵值關聯不再保持)

Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6 [6] => 8 [7] => 9 )

asort ( array &$array [, int $sort_flags] )

本函數對數組進行排序,數組的索引保持和單元的關聯.主要用於對那些單元順序很重要的結合數組進行排序. 同樣是按引用傳遞的,沒返回值.

<?php $arr = array(5,2,6,8,4,1); asort($arr); print_r($arr); ?>

輸出(可以看到鍵值保持不變):

Array ( [5] => 1 [1] => 2 [4] => 4 [0] => 5 [2] => 6 [3] => 8 )

rsort ( array &$array [, int $sort_flags] )

本函數類似sort函數, 對數組進行逆向排序(最高到最低)。

注: 本函數爲 array 中的單元賦予新的鍵名。這將刪除原有的鍵名而不僅是重新排序。

如果成功則返回 TRUE,失敗則返回 FALSE

arsort ( array &$array [, int $sort_flags] )

本函數對數組進行逆向排序,數組的索引保持和單元的關聯。主要用於對那些單元順序很重要的結合數組進行排序。arsort()函數與asort()相同,只是它以相反的順序(降序)對數組元素排序。

如果成功則返回 TRUE,失敗則返回 FALSE

ksort ( array &$array [, int $sort_flags] )

ksort和sort的區別就是對數組按照鍵名排序而不是按值排序,保留鍵名到數據的關聯.本函數主要用於關聯數組. 如果成功則返回 TRUE,失敗則返回 FALSE。

krsort ( array &$array [, int $sort_flags] )
見ksort,該函數同ksort只是把ksort後的結果逆序排序而已。

natsort ( array &$array )

本函數實現了一個和人們通常對字母數字字符串進行排序的方法一樣的排序算法並保持原有鍵/值的關聯,這被稱爲“自然排序”.本算法和通常的計算機字符串排序算法(用於 sort())的區別見下面示例.

如果成功則返回 TRUE,失敗則返回 FALSE.
php手冊中有個非常經典的例子

<?php $array1 = $array2 = array("img1", "img12", "img2", "img10"); sort($array1); echo "Standard sorting\n"; print_r($array1); natsort($array2); echo "\nNatural order sorting\n"; print_r($array2); ?>

上例將輸出:Standard sorting

Array ( [0] => img1 [1] => img10 [2] => img12 [3] => img2 )

Natural order sorting

Array ( [0] => img1 [2] => img2 [3] => img10 [1] => img12 )
發佈了35 篇原創文章 · 獲贊 3 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章