PHP 多维数组排序

这篇博客介绍了如何使用PHP对多维数组进行排序,特别是涉及到多级键的情况。文章提供了一个方法`multi_dimension_sort`,该方法接受多个参数,包括要排序的数组以及各个层级的键和对应的排序方式,例如:`multi_dimension_sort($arr, 'id', SORT_ASC, 'class.class_num', SORT_ASC, 'class.student.value', SORT_DESC)`。这个方法允许灵活地根据数组内的不同路径键值进行升序或降序排序。" 130298131,10569231,Java Web入门:Tomcat 8.5.28的下载与安装,"['Tomcat服务器', 'Java Web', '服务器安装']
摘要由CSDN通过智能技术生成
/**
 * 多维数组排序
 *
 * @Author Xven   <QQ:270988107>
 * @param  [type] $args          [description]
 * @return [type]                [description]
 */
function multi_dimension_sort(...$args){
    $arr = array_shift($args); // 取到要排序的数组,剩下的为要排序的键和排序类型
    $sort_arg = [];
    foreach($args as $arg){
        // 这里主要是为了得到排序的key对应的值
        $sort = $arr;
        if(is_string($arg)){
            $arg = explode('.', $arg); // 我设定参数里面多维数组下的键,用‘.’连接下级的键,这里得到键,然后下面循环取得数组$arr里面该键对应的值
            foreach($arg as $key){
                $sort = array_column($sort, $key); // 每次循环$sort的维度就会减一
            }
            $sort_arg[] = $sort;
        }else{
            $sort_arg[] = $arg; // 排序方法SORT_ASC、SORT_DESC等
        }
    }
    $sort_arg[] = &$arr; // 这个数组大致结构为:[$sort, SORT_ASC, $sort2, SORT_DESC,$arr]
    
    call_user_func_array('array_multisort', $sort_arg); // 因为
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值