//重要的是解决这类问题的思维哦 【原创手写】
if(!function_exists('arrArrToSort')){
/**
* description:php二维数组排序(升、降)
* author:wanghua
* @param $data 数据源(必须是二维数组)
* @param $field 要排序的字段(必须) eg:年龄或者价格
* @param bool $sort 排序方式
* @param bool $unique_field 指定唯一字段 eg:例如userID一般都是唯一的
* @return array 返回排序后的数据源
*/
function arrArrToSort($data, $field, $sort=true, $unique_field){
//取出排序源
$field_arr_key = array_column($data, $unique_field);
$field_arr_val = array_column($data, $field);
$source_arr = [];
foreach ($field_arr_key as $key=>$val){
$source_arr[$val] = $field_arr_val[$key];
}
//排序
if($sort)arsort($source_arr);
else asort($source_arr) ;
//重组数据
$new_arr = [];
foreach ($source_arr as $k=>$v){
foreach ($data as $a=>$b){
if($k == $b[$unique_field]){
array_push($new_arr, $b);
}
}
}
return $new_arr;
}
}
最佳答案
