array_multisort() : 这个函数相对复杂,可以看下这篇博客关于PHP array_multisort() 函数的理解
asort() : 按照元素值对数组从小到大进行排序,键名不会被重置。第一个参数为排序数组,第二个参数可选,用来指定将数组元素按照那种类型(数字或者字符串等)进行比较。详情见附录。
$fruits = array(1,3,-10);
asort($fruits);
print_r($fruits); //Array ( [2] => -10 [0] => 1 [1] => 3 )
$fruits = array(1,3,-10);
arsort($fruits);
print_r($fruits); //Array ( [1] => 3 [0] => 1 [2] => -10 )
$array = [
8 => 12,
99 => 43,
2 => 20,
-10 => 0
];
ksort($array);
print_r($array); //Array ( [-10] => 0 [2] => 20 [8] => 12 [99] => 43 )
$array = [
8 => 12,
99 => 43,
2 => 20,
-10 => 0
];
krsort($array);
print_r($array); //Array ( [99] => 43 [8] => 12 [2] => 20 [-10] => 0 )
$array1 = $array2 = array("img12.png", "img10.png", "img2.png", "img1.png");
echo "原始数组\n";
print_r($array1);
asort($array1);
echo "asort排序数组\n";
print_r($array1);
natsort($array2);
echo "\nnatsort(自然排序)数组\n";
print_r($array2);
/*
* 显示结果
*
原始数组
Array
(
[0] => img12.png
[1] => img10.png
[2] => img2.png
[3] => img1.png
)
asort排序数组
Array
(
[3] => img1.png
[1] => img10.png
[0] => img12.png
[2] => img2.png
)
natsort(自然排序)数组
Array
(
[3] => img1.png
[2] => img2.png
[1] => img10.png
[0] => img12.png
)*/
$array1 = $array2 = array('IMG0.png', 'img12.png', 'img10.png', 'img2.png', 'img1.png', 'IMG3.png');
echo "原始数组\n";
print_r($array1);
asort($array1);
echo "asort排序数组\n";
print_r($array1);
natcasesort($array2);
echo "\nnatsort(自然排序)数组\n";
print_r($array2);
/*
* 显示结果
*
原始数组
Array
(
[0] => IMG0.png
[1] => img12.png
[2] => img10.png
[3] => img2.png
[4] => img1.png
[5] => IMG3.png
)
asort排序数组
Array
(
[0] => IMG0.png
[5] => IMG3.png
[4] => img1.png
[2] => img10.png
[1] => img12.png
[3] => img2.png
)
natsort(自然排序)数组
Array
(
[0] => IMG0.png
[4] => img1.png
[3] => img2.png
[5] => IMG3.png
[2] => img10.png
[1] => img12.png
)*/
$array = ['a'=>10,-1,889,0];
rsort($array);
print_r($array); //Array ( [0] => 889 [1] => 10 [2] => 0 [3] => -1 )
$array = ['a'=>10,-1,889,0];
sort($array);
print_r($array); //Array ( [0] => -1 [1] => 0 [2] => 10 [3] => 889 )
$array = [
991,
10,
0,
8,
7
];
shuffle($array);
print_r($array); //Array ( [0] => 991 [1] => 8 [2] => 10 [3] => 7 [4] => 0 ) 这个返回值是随机的
来源:PHP数组排序类型标记
- SORT_REGULAR - 正常比较单元(不改变类型)
- SORT_NUMERIC - 单元被作为数字来比较
- SORT_STRING - 单元被作为字符串来比较
- SORT_LOCALE_STRING - 根据当前的区域(locale)设置来把单元当作字符串比 较,可以用 setlocale() 来改变。
- SORT_NATURAL - 和 natsort() 类似对每个单元以“自然的顺序”对字符串进行排序。 PHP 5.4.0 中新增的。
- SORT_FLAG_CASE - 能够与 SORT_STRING 或 SORT_NATURAL 合并(OR 位运算),不区分大小写排序字符串。