php中多维数组比较array_multisort()的使用
array_multisort(数组名1,[字段1],[排列顺序],[排序类型],[字段2],[排列顺序],[排序类型],数组名2。。。。)
二维数组:$arr=Array([0]=>Array([0]=>name1[1]=>1[2]=>2)
[1]=>Array([0]=>name2[1]=>2[2]=>1))
对第2列降序排序:multisort($arr,1,SORT_DESC)
结果:$arr=Array([0]=>Array([0]=>name2[1]=>2[2]=>1)
[1]=>Array([0]=>name1[1]=>1[2]=>2))
先按第一列降序,在按第二列升序:
<?php
$array[]=array("age"=>20,"name"=>"li");
$array[]=array("age"=>21,"name"=>"ai");
$array[]=array("age"=>20,"name"=>"ci");
$array[]=array("age"=>22,"name"=>"di");
foreach($array as$key=>$value){
$age[$key]=$value['age'];
$name[$key]=$value['name'];
}
array_multisort($age,SORT_NUMERIC,SORT_DESC,$name,SORT_STRING,SORT_ASC,$array);
print_r($array);
?>
一些参数说明:
SORT_ASC-默认,按升序排列
SORT_DESC-按照下降顺序排序
SORT_REGULAR-将项目按照通常方法比较
SORT_NUMERIC-将项目按照数值比较
SORT_STRING-将项目按照字符串比较
<?php
$a1=array("Dog","Cat");
$a2=array("Fido","Missy");
array_multisort($a1,$a2);
print_r($a1);
print_r($a2);
?>输出:
Array([0]=>Cat[1]=>Dog)
Array([0]=>Missy[1]=>Fido)对多维数组排序$ar=array(array("10",100,100,"a"),array(1,3,"2",1));array_multisort($ar[0],SORT_ASC,SORT_STRING,$ar[1],SORT_NUMERIC,SORT_DESC);
本例中经过排序后,第一个数组将包含10,100,100,"a"(作为字符串上升排序),第二个数组将包含1,3,"2",1(作为数值下降排序)。