php自定义对二维数组进行排序

在做ecshop开发时。经常对二维数组进行排序,但是自己写想了半天也没写出来,实际上我以为api有这个功能,所以我一直在寻找api,并没有真正动脑去写

在网上查了一下。便把它的转过来了,方便今后自己复习

$ar = array(
        array('name'=>'手机','brand'=>'诺基亚','price'=>1050),
        array('name'=>'笔记本电脑','brand'=>'lenovo','price'=>4300),
        array('name'=>'剃须刀','brand'=>'飞利浦','price'=>3100),
        array('name'=>'跑步机','brand'=>'三和松石','price'=>4900),
        array('name'=>'手表','brand'=>'卡西欧','price'=>960),
        array('name'=>'液晶电视','brand'=>'索尼','price'=>6299),
        array('name'=>'激光打印机','brand'=>'惠普','price'=>1200)
        );
//主要思路。就是要把排序的那一个值。先放入到一个数组,然后 对这个数组进行排序,这个数组的下标在记录时也对应二维数组的下标
function array_sort($arr,$key,$type='asc'){
    $keyValue=$newArray=array();
    foreach($arr as $k=>$v){
        $keyValue[$k]=$v[$key];
    }
    if($type=='asc'){
        asort($keyValue);
    }else{
        arsort($keyValue);
    }
    reset($keyValue);
    foreach($keyValue as $k=>$v){
        $newArray[$k]=$arr[$k];
    }
    return $newArray;
}
print_r(array_sort($ar, 'brand'));
  


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值