赞
踩
参数 | 说明 |
---|---|
array | 要排序的数组。 |
sort_flags | 可选的第二个参数 sort_flags 可以用以下值改变排序的行为: |
sort_flags值为:
返回值:成功时返回 TRUE, 或者在失败时返回 FALSE。
类似函数:
$array1 = [ 3=>'three', 5=>'five', 4=>'four', 1=>'one', 2=>'two' ];
$array = $array1; sort($array); var_export($array); echo '<br/>';
$array = $array1; rsort($array); var_export($array); echo '<br/>';
$array = $array1; asort($array); var_export($array); echo '<br/>';
$array = $array1; ksort($array); var_export($array); echo '<br/>';
$array = $array1; arsort($array); var_export($array); echo '<br/>';
$array = $array1; krsort($array); var_export($array); echo '<br/>';
array ( 0 => 'five', 1 => 'four', 2 => 'one', 3 => 'three', 4 => 'two', )
array ( 0 => 'two', 1 => 'three', 2 => 'one', 3 => 'four', 4 => 'five', )
array ( 5 => 'five', 4 => 'four', 1 => 'one', 3 => 'three', 2 => 'two', )
array ( 1 => 'one', 2 => 'two', 3 => 'three', 4 => 'four', 5 => 'five', )
array ( 2 => 'two', 3 => 'three', 1 => 'one', 4 => 'four', 5 => 'five', )
array ( 5 => 'five', 4 => 'four', 3 => 'three', 2 => 'two', 1 => 'one', )
参数 | 说明 |
---|---|
array1 | 要排序的 array。 |
array1_sort_order | 之前 array 参数要排列的顺序。 SORT_ASC 按照上升顺序排序, SORT_DESC 按照下降顺序排序。 [此参数可以和 array1_sort_flags 互换],也可以完全删除,默认是 SORT_ASC 。 |
array1_sort_flags | 为 array 参数设定选项(同一维数组) |
$arr = [ 3, 7, 6, 1 ];
$arr2 = [ 'three', 'seven', 'six', 'one' ];
$arr3 = [ 6, 14, 12, 2 ];
array_multisort($arr, $arr2, $arr3);
var_export($arr); echo '<br/>'; //array ( 0 => 1, 1 => 3, 2 => 6, 3 => 7, )
var_export($arr2); echo '<br/>'; //array ( 0 => 'one', 1 => 'three', 2 => 'six', 3 => 'seven', )
var_export($arr3); echo '<br/>'; //array ( 0 => 2, 1 => 6, 2 => 12, 3 => 14, )
$arr = [
[ 9, '7', 6, 1, 3 ],
[ 'nine', 'seven', '6', 1, 3 ],
];
array_multisort($arr[0], SORT_ASC, SORT_STRING, //array1_sort_order与array1_sort_flags参数位置可互换
$arr[1], SORT_NUMERIC, SORT_DESC);
var_export($arr); //array ( 0 => array ( 0 => 1, 1 => 3, 2 => 6, 3 => '7', 4 => 9, ), 1 => array ( 0 => 1, 1 => 3, 2 => '6', 3 => 'seven', 4 => 'nine', ), )
$arr[0]被当作字符串以升序排列;$arr[1]被当作数字以降序排列。
[返回的怎么还是和1)、一样的,$arr[1]的顺序完全取决于$arr[0]]...???
//先根据like降序,然后根据age升序
$arr = [
['like'=>99, 'age'=>18],
['like'=>77, 'age'=>23],
['like'=>111, 'age'=>8],
['like'=>66, 'age'=>24],
['like'=>33, 'age'=>21],
['like'=>99, 'age'=>31],
];
$likeArr = array_column($arr, 'like');
$ageArr = array_column($arr, 'age');
array_multisort($likeArr, SORT_DESC, $ageArr, SORT_ASC, $arr);
var_export($arr);
array ( 0 => array ( 'like' => 111, 'age' => 8, ),
1 => array ( 'like' => 99, 'age' => 18, ),
2 => array ( 'like' => 99, 'age' => 31, ),
3 => array ( 'like' => 77, 'age' => 23, ),
4 => array ( 'like' => 66, 'age' => 24, ),
5 => array ( 'like' => 33, 'age' => 21, ),
)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。