介紹一個(gè)比較好用的二位數(shù)組的多個(gè)字段的排序的方法。
public function sortByCols($list, $field)
{
$sort_arr=array();
$sort_rule='';
foreach($field as $sort_field=>$sort_way){
foreach($list as $key=>$val){
$sort_arr[$sort_field][$key]=$val[$sort_field];
}
$sort_rule .= '$sort_arr["' . $sort_field . '"],'.$sort_way.',';
}
if(empty($sort_arr)||empty($sort_rule)){ return $list; }
eval('array_multisort('.$sort_rule.' $list);');//array_multisort($sort_arr['parent'], 4, $sort_arr['value'], 3, $list);
return $list;
}
$hand = [['id' => 1, 'age' => 1, 'num' => 2], ['id' => 1, 'age' => 1, 'num' => 2], ['id' => 1, 'age' => 1, 'num' => 2]];
$hand = $this->sortByCols($hand, array('age' => SORT_ASC, 'num' => SORT_ASC, 'id' => SORT_DESC));
具體的效果就不說了,直接擼代碼試試就知道了。
這個(gè)方法不是最近使用的,整理之前的代碼的時(shí)候發(fā)現(xiàn)的,不知道太懶了,沒有記錄下來