二维数组根据某个字段排序

/**
     * 二维数组根据某个字段排序
     * @param $array array 要排序的数组
     * @param $keys  string 要排序的键字段
     * @param int $sort 排序类型  SORT_ASC SORT_DESC
     * @return mixed 排序后的数组
     */
    public static function arraySort($array, $keys, $sort = SORT_DESC)
    {
        $keysValue = [];
        foreach ($array as $k => $v) {
            $keysValue[$k] = $v[$keys];
        }
        array_multisort($keysValue, $sort, $array);
        return $array;
    }

大神评论的方法:

#转集合排序
collect($array)->sortBy('key')->toArray();
collect($array)->sortByDesc('key')->toArray();

array_multisort(array_column($array, 'key'), SORT_DESC, $array);
本作品采用《CC 协议》,转载必须注明作者和本文链接
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 4

其实你可以这样,

//更改原数组
array_multisort(array_column($array, 'key'), SORT_DESC, $array);
3年前 评论
sgm4231 (楼主) 3年前
celaraze 3年前

其实你也可以这样,

#转集合排序
collect($array)->sortBy('key')->toArray();
// or
collect($array)->sortByDesc('key')->toArray();
3年前 评论
sgm4231 (楼主) 3年前

其实你可以这样,

//更改原数组
array_multisort(array_column($array, 'key'), SORT_DESC, $array);
3年前 评论
sgm4231 (楼主) 3年前
celaraze 3年前

其实你也可以这样,

#转集合排序
collect($array)->sortBy('key')->toArray();
// or
collect($array)->sortByDesc('key')->toArray();
3年前 评论
sgm4231 (楼主) 3年前
颠倒的玉石

集合是个好用的东西,主要看你们看不看这块的文档了

3年前 评论
sgm4231 (楼主) 3年前
工匠 3年前
janus

秀 :kissing_heart:

2年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!