sort,rsort,ksort,krsort,asort,arsort函数用来对数组进行排序,本篇笔记对这6个函数的功能区别,传入参数和返回值进行了介绍,并通过范例加深了解他们之间的区别
函数功能
函数 | 功能 |
---|---|
sort | 按数组的值进行升序排序 |
rsort | 按数组的值进行降序排序 |
ksort | 按数组的键进行升序排序,并保留键值关系 |
krsort | 按数组的键进行降序排序,并保留键值关系 |
asort | 按数组的值进行升序排序,并保留键值关系 |
arsort | 按数组的值进行降序排序,并保留键值关系 |
参数介绍
函数名 ( array &$array [, int $sort_flags = SORT_REGULAR ] ) : bool
以上6个函数的传入参数和返回值相同
传入参数
&$array
- 必须传入要排序的数组的引用
$sort_flags
- 可选传入改变排序的行为
$sort_flags可选值如下
SORT_REGULAR
- 正常比较单元(不改变类型)
SORT_NUMERIC
- 单元被作为数字来比较
SORT_STRING
- 单元被作为字符串来比较
SORT_LOCALE_STRING
- 根据当前的区域(locale)设置来把单元当作字符串比较,可以用 setlocale() 来改变
SORT_NATURAL
- 对每个单元以“自然的顺序”对字符串进行排序
SORT_FLAG_CASE
- 能够与 SORT_STRING 或 SORT_NATURAL 合并(OR 位运算),不区分大小写排序字符串
返回值
成功时返回 TRUE
, 失败时返回 FALSE
。
范例
声明一个数组
$array = [1 => 'construct', 'c' => 'behavior', 3 => 'abstract', 'a' => 'jmsite'];
sort和rsort对比
$arr = $array;
sort($arr);
print_r($arr);
$arr = $array;
rsort($arr);
print_r($arr);
输出
Array
(
[0] => abstract
[1] => behavior
[2] => construct
[3] => jmsite
)
Array
(
[0] => jmsite
[1] => construct
[2] => behavior
[3] => abstract
)
以上php代码执行后,数组按照值进行了升序和降序的排序,但键值关系没有保留
ksort和krsort对比
$arr = $array;
ksort($arr);
print_r($arr);
$arr = $array;
krsort($arr);
print_r($arr);
输出
Array
(
[a] => jmsite
[c] => behavior
[1] => construct
[3] => abstract
)
Array
(
[3] => abstract
[1] => construct
[c] => behavior
[a] => jmsite
)
以上php代码执行后,数组按照键进行了升序和降序的排序,键值关系保留
asort和arsort对比
$arr = $array;
asort($arr);
print_r($arr);
$arr = $array;
arsort($arr);
print_r($arr);
输出
Array
(
[3] => abstract
[c] => behavior
[1] => construct
[a] => jmsite
)
Array
(
[a] => jmsite
[1] => construct
[c] => behavior
[3] => abstract
)
以上php代码执行后,数组按照值进行了升序和降序的排序,键值关系保留
原文地址:https://www.jmsite.cn/blog-716.html