工具類功能清單
removeEmpty() - 遞迴移除空值元素
getCols() - 提取多維陣列指定欄位
toHashmap() - 鍵值對轉雜湊表
groupBy() - 依欄位分組
toTree() - 扁平陣列轉樹狀結構(支援自訂 parent_id/childrens)
treeToArray() - 樹狀結構扁平化
sortByCol() - 單欄位排序
sortByMultiCols() - 多欄位混合排序(支援 ASC/DESC)
核心場景應用
樹狀結構雙向轉換
// 扁平轉樹狀
$tree = ArrayUtil::toTree($list, 'id', 'parent_id', 'children');
// 樹狀轉扁平(保留層級資訊)
$flat = ArrayUtil::treeToArray($tree, 'children');
多維度排序實戰
$data = [
['name'=>'A', 'age'=>25, 'score'=>90],
['name'=>'B', 'age'=>20, 'score'=>95],
];
// 年齡升序、分數降序
ArrayUtil::sortByMultiCols($data, [
'age' => SORT_ASC,
'score' => SORT_DESC
]);
設計原則
- 靜態方法鏈式呼叫,無狀態設計
- 參數預設值符合常見慣例(parent_id、children)
- 嚴格型別提示,支援 PHP 7.4+
- 單元測試覆蓋邊界條件(空陣列、巢狀深度、循環引用)