PHP二维数组根据指定键排序

//对二维数组进行排序的函数
/** 参数说明
$arrays:
    排序的数组。
$sort_key:
    排序的键。
$sort_order:
    SORT_ASC - 默认,按升序排列。(A-Z)
    SORT_DESC - 按降序排列。(Z-A)
$sort_type:
    SORT_REGULAR - 默认 将每一项按常规顺序排列。
    SORT_NUMERIC - 将每一项按数字顺序排列。
    SORT_STRING - 将每一项按字母顺序排列。
*/
function umember_sort($arrays,$sort_key,$sort_order=SORT_DESC,$sort_type=SORT_NUMERIC ){   
    if(is_array($arrays)){   
        foreach ($arrays as $array){   
            if(is_array($array)){   
                $key_arrays[] = $array[$sort_key];   //将排序的键存进数组
            }else{   
                return false;   
            }   
        }   
    }else{   
        return false;   
    }  

    //运用PHP自带函数将键的数组排序并返回排序后的数组
    array_multisort($key_arrays,$sort_order,$sort_type,$arrays);   
    return $arrays;   
} 


//需要排序的数组数据
$data = array(
    array(
      'account' => 'zhaoxing7',
      'uid' => '306019',
      'password' => 'kw23yt',
      'username' => '赵dsf1',
      'heartbeat' => '5' ,
      'gpscycle' => '30' ,
      'level' => '1' ,
      'lasttime' => '2018-07-13 14:11:01' ,
      'num' =>'dfg',
      'note' => '工程队队员a',
    ),
    array (
      'account' => 'zxg5',
      'uid' => '306017' ,
      'password' => 'kw23yt',
      'username' => '赵sfe7',
      'heartbeat' => '5' ,
      'gpscycle' => '30' ,
      'level' => '1' ,
      'lasttime' => '2018-07-13 14:11:01' ,
      'num' =>'dfg',
      'note' => '工程队队员s',
    ),
    array (
      'account' => 'zhaoxing3',
      'uid' => '306015',
      'password' => 'kw23yt',
      'username' => '赵sf7',
      'heartbeat' => '5' ,
      'gpscycle' => '30' ,
      'level' => '1' ,
      'lasttime' => '2018-07-13 14:11:01' ,
      'num' =>'dfg',
      'note' => '工程队队员7',
    ),
    array (
      'account' => 'fdgdfgf',
      'uid' => '306034',
      'password' => 'kwd3yt',
      'username' => '赵sdf7',
      'heartbeat' => '5' ,
      'gpscycle' => '30' ,
      'level' => '1' ,
      'lasttime' => '2018-07-13 14:11:01' ,
      'num' =>'dfg',
      'note' => '工程队队员7',
    ),
    array (
      'account' => 'dsfdsf',
      'uid' => '306023' ,
      'password' => 'kd3yt',
      'username' => '赵dd7',
      'heartbeat' => '5' ,
      'gpscycle' => '30' ,
      'level' => '1' ,
      'lasttime' => '2018-07-13 14:11:01' ,
      'num' =>'dfg',
      'note' => '工程队队员6',
    ),
    array (
      'account' => 'zhaoxing1',
      'uid' => '306013',
      'password' => 'kd3yt',
      'username' => 'sfdd7',
      'heartbeat' => '5' ,
      'gpscycle' => '30' ,
      'level' => '1' ,
      'lasttime' => '2018-07-13 14:11:01' ,
      'num' =>'dfg',
      'note' => '工程队队员7',
    )
);


//调用函数,传入需要排序的数组,并指定排序的键(此处以uid降序排序),返回排序后的二维数组 
$data = umember_sort($data,'uid');

 


版权声明:本文为zhousulian原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。