php 二维数组排序比较 2 —— 快速排序法

方法函数


function quick_sort($sort,$arr,$type = 'asc'){//默认为正序排列
    $len = count($arr);
    if($len <= 1)
    {
        return $arr;
    }
    $key = $arr[0];
	$key_sort = $sort[0];
    $arr_left = array();
	$sort_left = array();
    $arr_right = array();
	$sort_right = array();
    for ($i=1;$i<$len;$i++)
    {
		if($type = 'desc'){//倒序排列
			if($arr[$i] >= $key){
				$arr_left[] = $arr[$i];
				$sort_left [] = $sort[$i];
			}else{
				$arr_right[] = $arr[$i];
				$sort_right [] = $sort[$i];
			}
		}else{//正序排列
			if($arr[$i] <= $key){
				$arr_left[] = $arr[$i];
				$sort_left [] = $sort[$i];
			}else{
				$arr_right[] = $arr[$i];
				$sort_right [] = $sort[$i];
			}
		}	
    }
    $arr_left = quick_sort($arr_left,$sort_left,$type);
    $arr_right = quick_sort($arr_right,$sort_right,$type);
    return array_merge($sort_left,array($key_sort),$sort_right);
}

调用方法函数


$a = Array();

foreach($sort as $key=>$val){
	$a[] = $val['created_at'];
}

var_dump(quick_sort($sort,$a,'asc'));//正序排列

//var_dump(quick_sort($sort,$a,'desc'));//倒序排列

 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值