/** * 针对二维数组下的某字段排序 * @param array $myarr 被排序数组 * @param string $sort_key 排序根据字段 * @param flag $sort_order 排序规则:SORT_ASC、SORT_DESC * @param flag $sort_type 排序类型:SORT_REGULAR、SORT_NUMERIC、SORT_STRING * @return array 排序后的数组 */ public function myarr_sort($myarr,$sort_key,$sort_order,$sort_type) { $key_arr = []; if(is_array($myarr)){ foreach($myarr as $m){ if(is_array($m)){ $key_arr[] = $m[$sort_key]; }else{ return '我喜欢二维数组多一点'; } } }else{ return '我喜欢数组,你丑,不要'; } array_multisort($key_arr,$sort_order,$sort_type,$myarr); return $myarr; }
其实就是,把排序字段的值从二维数组里取出来组成一个一维数组,然后通过array_multisort()函数就可以对二维数组按照该排序字段进行排序。