排序顺序标志:
■ 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);
print_r($array2);
print_r($array3);
默认所有数组升序排序 以上例子中 ,首先对$array1进行排序,可以看到(键名‘id’和‘ranking’的键值相同,键名‘total’和‘finish’的键值相同),所以在排序$array1的相同值时 按照$array2相应值的大小来排序($array2 ‘ranking’的值小于‘id’的值,因此ranking的值排在id的前面),依此类推。