二维数组根据指定的键值排序

function array_sort($array,$keys,$type='asc'){
    if(!isset($array) || !is_array($array) || empty($array)){
        return '';
    }
    if(!isset($keys) || trim($keys)==''){
        return '';
    }
    if(!isset($type) || $type=='' || !in_array(strtolower($type),array('asc','desc'))){
        return '';
    }
    $keysvalue=array();
    foreach($array as $key=>$val){
        //$val[$keys] = str_replace('-','',$val[$keys]);
      /*  $val[$keys] = str_replace(' ','',$val[$keys]);
        $val[$keys] = str_replace(':','',$val[$keys]);*/
        $keysvalue[] =$val[$keys];
    }
    asort($keysvalue); //key值排序
    reset($keysvalue); //指针重新指向数组第一个
    foreach($keysvalue as $key=>$vals) {
        $keysort[] = $key;
    }
    $keysvalue = array();
    $count=count($keysort);
    if(strtolower($type) != 'asc'){
        $n = 0;
        for($i=$count-1; $i>=0; $i--) {
            //$array[$keysort[$i]]['no'] = $n+$page_cur*$page_num-($page_num-10+9);
            $keysvalue[] = $array[$keysort[$i]];
            $n++;
        }
    }else{
        for($i=0; $i<$count; $i++){
            $keysvalue[] = $array[$keysort[$i]];
        }
    }

    for($i=0;$i<$count;$i++){
        for($j=$i;$j<$count;$j++){
            if($keysvalue[$i][$keys] == $keysvalue[$j][$keys]){
                if(strtolower($type) != 'asc'){//倒序,大的在前
                    if($keysvalue[$i]['receivables'] < $keysvalue[$j]['receivables']){
                        $item = $keysvalue[$i];
                        $keysvalue[$i] = $keysvalue[$j];
                        $keysvalue[$j] = $item;
                    }
                }else{//正序,小的在前
                    if($keysvalue[$i]['receivables'] > $keysvalue[$j]['receivables']){
                        $item = $keysvalue[$i];
                        $keysvalue[$i] = $keysvalue[$j];
                        $keysvalue[$j] = $item;
                    }
                }
            }
        }
    }
    return $keysvalue;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值