您的位置:首页 > 编程语言 > PHP开发

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

2013-12-25 16:11 309 查看
在做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'));

  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: