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

PHP 多維數組排序利器:ArraySortUtil 類完整用法詳解

     編輯:PHP 綜合知識

類簡介

ArraySortUtil 是一個輕量級的 PHP 多維數組排序工具類,支援 uasort(保持鍵值關聯)與 multisort(多鍵排序)兩種引擎,可按多欄位、多順序、大小寫敏感度、自然排序等靈活組合。

核心方法

  • ArraySortUtil::uasort($array, $fields):基於 uasort,保留原鍵名。
  • ArraySortUtil::multisort($array, $fields):基於 array_multisort,重新索引。

欄位配置參數

每個排序欄位為一個關聯數組,支援以下鍵:

鍵名說明預設值
field必填,要排序的欄位名—
ordertrue=降序,false=升序false
naturetrue=自然排序,false=普通排序false
caseSensitivetrue=區分大小寫,false=不區分false

使用範例

<?php
require_once 'class.ArraySortUtil.php';

$assetData = [
    ["id"=>1, "category"=>"Hardware", "subcategory"=>"Personal Computer", "supplier"=>"DELL", "particular"=>"Vostro 1320", "purchase_price"=>2300, "other_charges"=>500],
    ["id"=>2, "category"=>"Hardware", "subcategory"=>"Personal Computer", "supplier"=>"DELL", "particular"=>"Vostro 1420", "purchase_price"=>2500, "other_charges"=>0],
    ["id"=>3, "category"=>"Hardware", "subcategory"=>"Laptop", "supplier"=>"DELL", "particular"=>"Vostro 1520", "purchase_price"=>4500, "other_charges"=>100],
    ["id"=>4, "category"=>"Hardware", "subcategory"=>"Laptop", "supplier"=>"Acer", "particular"=>"Apire One", "purchase_price"=>2500, "other_charges"=>200],
    ["id"=>5, "category"=>"Furniture", "subcategory"=>"Table", "supplier"=>"CHEN", "particular"=>"Manager Table", "purchase_price"=>1000, "other_charges"=>0],
    ["id"=>6, "category"=>"Furniture", "subcategory"=>"Table", "supplier"=>"CHEN", "particular"=>"Staff Table", "purchase_price"=>500, "other_charges"=>0],
    ["id"=>7, "category"=>"Furniture", "subcategory"=>"Chair", "supplier"=>"CHEN", "particular"=>"Staff Chair", "purchase_price"=>500, "other_charges"=>0],
];

// 多欄位排序:category 升序,subcategory 降序
$fields = [
    ["field" => "category"],
    ["field" => "subcategory", "order" => true]
];

$sorted = ArraySortUtil::multisort($assetData, $fields);
echo "<h1>multisort 結果</h1><pre>";
print_r($sorted);
echo "</pre>";

$sorted = ArraySortUtil::uasort($assetData, $fields);
echo "<h1>uasort 結果(保留鍵)</h1><pre>";
print_r($sorted);
echo "</pre>";
?>

適用場景

  • 電商商品多維排序(價格、銷量、評分組合)
  • 後台報表數據多欄位排序
  • 任何需要靈活、可複用的多維數組排序需求

這個類封裝了底層排序細節,讓業務代碼只需聲明「按什麼欄位、怎麼排」,極大提升可讀性與維護性。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved