如题所述
去重的:
/*** 二维数组按照指定键值去重
* @param $arr 需要去重的二维数组
* @param $key 需要去重所根据的索引
* @return mixed
*/
function assoc_unique($arr, $key)
{
$tmp_arr = array();
foreach($arr as $k => $v) {
if(in_array($v[$key],$tmp_arr)) { //搜索$v[$key]是否在$tmp_arr数组中存在,若存在返回true
unset($arr[$k]);
} else {
$tmp_arr[] = $v[$key];
}
}
sort($arr); //sort函数对数组进行排序
return $arr;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答 2016-10-25
1 需要排序的数组如下:
$array = 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)
);
2 排序的函数:
function arr_sort($array,$key,$order="asc"){//asc是升序 desc是降序
$arr_nums=$arr=array();
foreach($array as $k=>$v){
$arr_nums[$k]=$v[$key];
}
if($order=='asc'){
asort($arr_nums);
}else{
arsort($arr_nums);
}
foreach($arr_nums as $k=>$v){
$arr[$k]=$array[$k];
}
return $arr;
}
3 调用方式:
arr_sort($array,'price');本回答被网友采纳
$array = 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)
);
2 排序的函数:
function arr_sort($array,$key,$order="asc"){//asc是升序 desc是降序
$arr_nums=$arr=array();
foreach($array as $k=>$v){
$arr_nums[$k]=$v[$key];
}
if($order=='asc'){
asort($arr_nums);
}else{
arsort($arr_nums);
}
foreach($arr_nums as $k=>$v){
$arr[$k]=$array[$k];
}
return $arr;
}
3 调用方式:
arr_sort($array,'price');本回答被网友采纳