首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C++ >> C++ 入門

PHP 二維數組排序三種方法:asort/arsort、usort、array_multisort

     編輯:C++ 入門

二維數組排序本質是「按某列排序並保持鍵值關聯」。

方法一:asort/arsort 保留索引 + 重建

function array_sort($arr, $key, $order=0) {
    $keyArray = array_column($arr, $key);
    $order ? arsort($keyArray) : asort($keyArray);
    $newArr = [];
    foreach ($keyArray as $k => $v) $newArr[] = $arr[$k];
    return $newArr;
}
  • 適用任意類型值(字符串、數字);
  • 穩定排序,保留原索引關聯。

方法二:usort 自定義比較函數(僅數值型)

usort($arr, function($a, $b) { return $b['id'] - $a['id']; }); // 降序
  • 簡潔高效,但比較函數需返回負/零/正整數;
  • 不穩定,相等元素相對序不保證。

方法三:array_multisort 多鍵排序

$vol = array_column($data, 'volume');
$ed  = array_column($data, 'edition');
array_multisort($vol, SORT_DESC, $ed, SORT_ASC, $data);
  • 支持多列、多順序混合排序;
  • 需先提取列構建獨立數組,作為參數傳入;
  • 功能最強大,語法稍繁瑣。

選型建議

場景推薦方法
單列、任意類型、需穩定asort/arsort + 重建
單列、純數值、追求簡潔usort
多列混合排序array_multisort
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved