最新消息:欢迎加入小松的QQ群一起讨论一起学习,服务器快到期了,新买了台服务器,最近要做服务器迁移

php 多维数组排序(二)

PHP 55浏览 0评论

之前写过php多维数组排序【推荐阅读:php 多维数组排序】,那个程序只只支持二维数组,今天分享的是支持多位数组的,不管几位数组都支持的

<?php

$array=array(
    array(
        "one"=>array(
                
                "two"=>array(
                        "three"=>3,
                        "num"=>array(
                            'num'=>1
                        )
                    ),
                "num"=>12,
                
            ),

    )
    ,
    array(
        "one"=>array(
                
                "two"=>array(
                        "three"=>2,
                        "num"=>array(
                            'num'=>2
                        )
                    ),
                "num"=>11,
                
            ),

    )
    ,
    array(
        "one"=>array(
                
                "two"=>array(
                        "three"=>1,
                        "num"=>array(
                            'num'=>1
                        )
                    ),
                "num"=>13,
                
            ),

    )
);


$arr=my_array_multisort($array,'num');
print_r($arr);

function my_array_multisort($data,$sort_order_field,$sort_order=SORT_ASC,$sort_type=SORT_NUMERIC){ 
    foreach($data as $key=> $val){
        if( $val && count($val) && is_array($val)){
            $sort_array= sort_order_field($val,$sort_order_field);            
        }
        
        $key_arrays[]=$sort_array[$sort_order_field];
    }
    array_multisort($key_arrays,$sort_order,$sort_type,$data);
    return $data;
}
function sort_order_field($data,$sort_order_field){
    if($data && count($data) && is_array($data)){
        foreach ($data as $key => $value) {
            if($sort_order_field==$key && !is_array($value)){ 

                return $data;                
            }
            if($value && count($value) && is_array($value)){
                $temp_data= sort_order_field($value,$sort_order_field);                
                if(!empty($temp_data[$sort_order_field] && !is_array($temp_data[$sort_order_field]))){
                    return $temp_data;
                }

            }
        }
    }

    return $data;
}
?>
QQ交流群:136351212

如无特别说明,本站文章皆为原创,若要转载,务必请注明以下原文信息:
转载保留版权:小松博客» php 多维数组排序(二)
本文链接地址:https://www.phpsong.com/3117.html

发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
木有头像就木有JJ!点这里按步骤申请Gravatar头像吧!

网友最新评论 (1)

加载中,请稍候...
  1. 这个好,正需要,帮我解决了问题,感谢!