在做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'));