排序顺序标志:
■ SORT_ASC - 按照上升顺序排序
■ SORT_DESC - 按照下降顺序排序排序类型标志
■ SORT_REGULAR -将项目按照通常方法比较
■ SORT_NUMERIC - 将项目按照数值比较
■ SORT_STRING - 将项目按照字符串比较
更多参数可参考php文档
二维数组排序
$array = array(
array('id'=>'1','total' => '12','finish' => '12', 'ranking' => '1'),
array('id'=>'2','total' => '12','finish' => '8', 'ranking' => '0.67'),
array('id'=>'3','total' => '11','finish' => '7', 'ranking' => '0.64'),
array('id'=>'4','total' => '11','finish' => '7', 'ranking' => '0.64'),
array('id'=>'5','total' => '10','finish' => '10', 'ranking' => '1'),
);
tota代表总量 finish代表完成量 ranking代表完成百分比
$keyRank = array_column($array, 'ranking');
$keyTotal = array_column($array, 'total_amount');
array_multisort($keyRank, SORT_DESC, $keyTotal, SORT_DESC, $array);
echo '<pre>';
print_r($array);
结果顺序为:(1,5,2,3,4)
以上例子中 首先对百分比(ranking)
进行倒序
排序,当百分比的值相同时。对总量(total)
进行倒序
排序
一维数组
$array1 = array('id'=>'1','total' => '12','finish' => '12', 'ranking' => '1');
$array2 = array('id'=>'2','total' => '11','finish' => '7', 'ranking' => '0.64');
$array3 = array('id'=>'3','total' => '10','finish' => '10', 'ranking' => '1');
array_multisort($array1, $array2, $array3);
print_r($array1);//Array ( [ranking] => 1 [id] => 1 [finish] => 12 [total] => 12 )
print_r($array2);//Array ( [ranking] => 0.64 [id] => 2 [finish] => 7 [total] => 11 )
print_r($array3);//Array ( [ranking] => 1 [id] => 3 [finish] => 10 [total] => 10 )
默认所有数组升序
排序
以上例子中 ,首先对$array1
进行排序,可以看到(键名‘id
’和‘ranking
’的键值相同
,键名‘total
’和‘finish
’的键值相同
),所以在排序$array1
的相同值
时 按照$array2
相应值的大小来排序($array2
‘ranking
’的值小于‘id’
的值,因此ranking
的值排在id
的前面),依此类推。