1,array_multisort 对多个数组进行排序
说明
1,对两个数组进行排序,则第一个数组和第二个数组元素个数需一致。
2,以第一个数组排序规则为准,到第二个数组中找对应位置元素,将第二个数组元素放到和第一个数组元素对应的位置。
3,如果第一个数组中有元素相同,则按照第二排序规则,对第二个数组进行排序
$arr1 = array(1,55,1,10,3,21);
$arr2 = array(1,10,2,355,20,100);
array_multisort($arr1,SORT_ASC,SORT_NUMERIC,$arr2,SORT_DESC,SORT_NUMERIC);
排序结果:
Array
(
[0] => 1
[1] => 1
[2] => 3
[3] => 10
[4] => 21
[5] => 55
)
Array
(
[0] => 2
[1] => 1
[2] => 20
[3] => 355
[4] => 100
[5] => 10
)
)
2,array_multisort() 对多维数组,按照多个条件进行排序
$arr = array(
array('num'=>1,'parise_num'=>22),
array('num'=>2,'parise_num'=>11),
array('num'=>3,'parise_num'=>11)
);
$num = array();
$parise_num = array();
foreach($arr as $k=>$v)
{
$num[$k] = $v['num'];
$parise_num[$k] = $v['parise_num'];
}
array_multisort($num,SORT_DESC,$parise_num,SORT_DESC,$arr);
结果:
Array
(
[0] => Array
(
[num] => 3
[parise_num] => 11
)
[1] => Array
(
[num] => 2
[parise_num] => 11
)
[2] => Array
(
[num] => 1
[parise_num] => 22
)
)