第一种、
$data[] = array('volume' => 67, 'edition' => 2, 'asd' => 'b')
$data[] = array('volume' => 86, 'edition' => 1, 'cc' => 'b')
$data[] = array('volume' => 85, 'edition' => 6, 'test' => 'b')
$data[] = array('volume' => 98, 'edition' => 2, 'eq' => 'b')
$data[] = array('volume' => 86, 'edition' => 3, 'jr' => 'b')
$data[] = array('volume' => 67, 'edition' => 7, ' wt' => 'b')
//获取要排序的字段
$edit = array_column($data, 'edition')
//先进行列排序,然后让$data数组按该字段来排序。
array_multisort($edit, SORT_DESC, $data)
//如果还有其他排序条件,则往函数后添加,最后再填写$data。 和mysql order相似,参数的字段越前,优先级越高。
$vol = array_column($data,'volume')
array_multisort($vol,SORT_ASC,$edit,SORT_DESC,$data)

第二种、
usort 排序会导致二维数组的key改变(key a,b,c 变成 0,1,2 这种)
如果不在意key的改变可以用这种
$arr 是引用
$arr = [
'a' => ['a' => 11, 'b' => 12, 'c' => 13],
'b' => ['a' => 10, 'b' => 13, 'c' => 12],
'c' => ['a' => 12, 'b' => 11, 'c' => 10],
];
usort($arr, function ($current, $next) {
# 正序排
return $current['a'] < $next['a'];
});
