首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

PHP 陣列排序函數完整指南:sort/rsort、asort/ksort、shuffle、array_reverse 等

     編輯:PHP 綜合知識

PHP 提供豐富的陣列排序函數,依索引/關聯陣列、升序/降序、按值/按鍵、隨機/反轉 等需求選用。

1. 快速建立陣列:range()

$nums = range(1, 9);        // [1,2,3,4,5,6,7,8,9]
$nums = range(9, 1);        // [9,8,7,6,5,4,3,2,1]
$nums = range(1, 9, 2);     // 步長 2:[1,3,5,7,9]
$letters = range('a', 'z'); // ['a','b',...,'z']

2. 索引陣列排序

函數說明鍵名保留
sort()升序(值)❌ 重新索引 0..n
rsort()降序(值)❌
sort($arr, SORT_NUMERIC)數值升序❌
sort($arr, SORT_STRING)字串升序❌
$arr = ['26', '3'];
sort($arr, SORT_NUMERIC); // ['3', '26']
sort($arr, SORT_STRING);  // ['26', '3'] (字典序)

3. 關聯陣列排序(保留鍵名)

函數排序依據順序
asort()值升序
arsort()值降序
ksort()鍵升序
krsort()鍵降序
$arr = ['xm'=>'name', 'xb'=>'sex', 'mz'=>'nation', 'cs'=>'birth'];
asort($arr);  // 按值升序:birth, name, nation, sex
ksort($arr);  // 按鍵升序:cs, mz, xb, xm

4. 隨機打亂:shuffle()

$arr = ['a','b','c','d'];
shuffle($arr); // 每次順序不同,鍵名重新索引

5. 反轉順序:array_reverse()

$arr = ['a','b','c','d'];
$rev = array_reverse($arr); // ['d','c','b','a']
// 原陣列不變,回傳新陣列

6. 記憶口訣

  • 基礎:sort(值升序)
  • 關聯陣列前綴:a (asort/arsort = 值)、k (ksort/krsort = 鍵)
  • 降序前綴:r (rsort/arsort/krsort)

7. 進階:使用者自訂排序

// 依長度排序
usort($arr, function($a, $b) {
    return strlen($a) - strlen($b);
});

// 關聯陣列保留鍵名自訂排序
uasort($arr, function($a, $b) {
    return $a - $b;
});

// 依鍵名自訂排序
uksort($arr, function($a, $b) {
    return strcmp($a, $b);
});
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved