二维数组针对某字段排序 - array_multisort()

时间:2022-07-13 21:03:31
/**
     * 针对二维数组下的某字段排序
     * @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()函数就可以对二维数组按照该排序字段进行排序。