PHP数组Array2个字段排序,先按第一个字段排序,再按第二个字段排序
参考链接:https://blog.csdn.net/weixin_34336292/article/details/89051721?spm=1001.2101.3001.6661.1&utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-89051721-blog-121580507.pc_relevant_paycolumn_v3&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-89051721-blog-121580507.pc_relevant_paycolumn_v3&utm_relevant_index=1
参考链接里给的解决方式是这样的:
/** * Sort array by filed and type, common utility method. * @param array $array * @param string $filed1 * @param string $type1 SORT_ASC or SORT_DESC * @param string $filed2 * @param string $type2 SORT_ASC or SORT_DESC */ public function sortByTwoFiled($data, $filed1, $type1, $filed2, $type2) { if (count($data) <= 0) { return $data; } foreach ($data as $key => $value) { $temp_array1[$key] = $value[$filed1]; $temp_array2[$key] = $value[$filed2]; } array_multisort($temp_array1, $type1, $temp_array2, $type2, $data); return $data; }
我自己修改了一下:
/** * Sort array by filed and type, common utility method. * @param array $array * @param string $filed1 * @param string $type1 SORT_ASC or SORT_DESC * @param string $filed2 * @param string $type2 SORT_ASC or SORT_DESC */ public function sortByTwoFiled($data, $filed1, $type1, $filed2, $type2) { if (count($data) <= 0) { return $data; } $temp_array1 = array_column($data, $filed1); $temp_array2 = array_column($data, $filed2); array_multisort($temp_array1, $type1, $temp_array2, $type2, $data); return $data; }