/**
* 二维数组排序
* @author aaron
* @param array $arr 将进行排序的二维数组
* @param string $key 需排序的键名
* @param string $order asc(默认) desc
* @param bool $is_index 是否保持索引关系 默认为TRUE
* @return array 排序后的数组
*/
function array_sort($arr, $key, $order = 'asc', $is_index = TRUE){
$keysvalue = array();
$new_array = array();
if($arr){
foreach ($arr as $k=>$v){
$keysvalue[$k] = $v[$key];
}
// 进行排序
if($order == 'asc'){
asort($keysvalue);
}else if($order == 'desc'){
arsort($keysvalue);
}else{
return 'fail for params error of method to array_sort';
exit();
}
if($is_index){
foreach ($keysvalue as $k=>$v){
$new_array[$k] = $arr[$k];
}
}else{
foreach ($keysvalue as $k=>$v){
$new_array[] = $arr[$k];
}
}
}
return $new_array;
}
原理很简单,取出 key、value 组成新的数组,进行排序,根据新数据组的的顺序匹配原有数组,最后得出最后排序后的数组