搜索
系统检测到您的用户名不符合规范:

php二维数组排序,原理简单,关键时候很管用

浏览:1268 发布日期:2018年07月03日 分类:技术分享 关键字: php二维数组排序 数组排序 排序
//对不起前面用过的朋友,有一个bug,当排序字段不是连续递增的时候,排序就会出现重复值,所以加了一个唯一字段验证,代码已更新。//重要的是解决这类问题的思维哦 【原创手写】
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;
}
}
最佳答案
评论() 相关
后面还有条评论,
评论支持使用[code][/code]标签添加代码
您需要登录后才可以评论 登录 | 立即注册
收藏
382379437
积分:950 等级:LV2
热点推荐
(追記) (追記ここまで)
最新更新

我们

合作

网站

信息

ThinkPHP 是一个免费开源的,快速、简单的面向对象的 轻量级PHP开发框架 ,创立于2006年初,遵循Apache2开源协议发布,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多的原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进,已经成长为国内最领先和最具影响力的WEB应用开发框架,众多的典型案例确保可以稳定用于商业以及门户级的开发。

AltStyle によって変換されたページ (->オリジナル) /