php二維數組排序

$arr = array(
	0=>array(
		'id'=>56,
		'name'=>"葉少翔",
		'age' =>18
	),
	1=>array(
		'id'=>66,
		'name'=>"PHP5",
		'age' =>23
	),
	2=>array(
		'id'=>76,
		'name'=>"江尊少",
		'age' =>20
	),
	array(
		'id'=>36,
		'name'=>"Mysql56",
		'age' =>19
	)
);
/**
 * 二維數組排序
 * @param  [type] $array 要進行排序的二維數組
 * @param  [type] $key   按什麼字段進行排序
 * @param  string $order 排序方式 aSORT_DESC 降序;SORT_ASC 升序
 */
function get_arr_sort($array,$key,$order="SORT_ASC"){
	//定義一個空數組
	$arrSort = array();
	$sort = array(  
    	'direction' => $order,
    	'field'     => $key,       
    );
	//循環數組
	foreach($array as $key=>$val){
		foreach($val as $k=>$v){
			$arrSort[$k][$key] = $v;
		}
	}
	//開始進行排序
	array_multisort($arrSort[$sort['field']], constant($sort['direction']), $array);
	return $array;
}


/**
 * 二維數組排序
 * @param  [type] $array 要進行排序的二維數組
 * @param  [type] $key   按什麼字段進行排序
 * @param  string $order 排序方式 asc是升序 desc是降序
 * @return [type]        [description]
 */
function array_sort($array,$key,$order="asc"){
	$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;
}
$sort = array(  
    'direction' => 'SORT_ASC', //排序順序標誌 SORT_DESC 降序;SORT_ASC 升序  
    'field'     => 'name',       //排序字段  
);
$arrSort = array();  
foreach($arr as $key => $val){  
    foreach($val as $k=>$v){  
        $arrSort[$k][$key] = $v;  
    }

}

var_dump($arrSort);


發佈了154 篇原創文章 · 獲贊 17 · 訪問量 24萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章