php函数sort,rsort,ksort,krsort,asort,arsort区别详解

这篇笔记详细介绍了PHP中用于数组排序的6个函数sort, rsort, ksort, krsort, asort和arsort,包括它们的功能、参数、返回值及范例。这些函数可以按值或键对数组进行升序或降序排序,同时考虑了键值关系的保留。通过示例代码展示了它们的区别和使用场景。" 113047585,10543528,B+树详解:增删查操作与结构解析,"['数据库', '数据结构', 'B树', 'B+树', '索引']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值