ArrayHelper
二维数组按某一列排序(如:聚合数据按运算后的结果排序 —— 统计场景)
$list = Query->get();
foreach ($list as &$item) {
// 推荐使用 foreach ($list as $key => $item) { $list[$key]['new_column'] = '运算后的结果'; }
$item['new_column'] = '运算后的结果';
}
if (!empty($params['sort_by']) && in_array($params['sort_by'], ['column_name1', 'column_name2'])) {
$sortArray = array_column($list, $params['sort_by']);
if (strtoupper($params['sort_order']) == 'ASC') {
array_multisort($sortArray, SORT_ASC, $list);
} else {
array_multisort($sortArray, SORT_DESC, $list);
}
}
// 分配导出数据时,如果使用 foreach ($list as $item) { item 会出现 奇怪现象,如 某一个item重复而另一个item丢失}
$exportDataList = [];
foreach ($list as $row) {
$exportDataList[] = [
$row['columne_1'],
$row['columne_2'],
...
$row['new_column'],
];
}