2018/04/04 PHP 中的 数组排序问题

时间:2023-03-10 05:34:43
2018/04/04 PHP 中的 数组排序问题

简单说一下为什么要总结一下PHP中关于数组排序的问题。

在很多时候我们对于数组要进行排序,但是 PHP 中对于排序已经有了很多封装。

但是某些函数是修改原数组,一部分是返回修改后数组,与其一个个试,不如在这个对于数组排序总一个总结,方便之后的使用。

资料原出处均为 PHP官方文档

--

sort/rsort [修改原数组-低->高/高->低] [成功true] [不会保留数组之间的键值关系]

bool sort/rsort ( array &$array [, int $sort_flags = SORT_REGULAR ] )

本函数对数组进行排序。当本函数结束时数组单元将被从最低到最高重新安排。

asort/arsort [修改原数组-从低->高/高->低] [成功true] [保留数组之间的键值关系]

bool asort/arsort ( array &$array [, int $sort_flags = SORT_REGULAR ] )

本函数对数组进行排序,数组的索引保持和单元的关联。主要用于对那些单元顺序很重要的结合数组进行排序。

--

natsort/ natcasesort [修改原数组-从低->高] [成功true] [保留数组之间的键值关系] [区分大小写/不区分]

bool natsort ( array &$array )

本函数实现了一个和人们通常对字母数字字符串进行排序的方法一样的排序算法并保持原有键/值的关联,这被称为“自然排序”

--

ksort/krsort [修改原数组-从键值低->高/高->低] [成功true] [保留数组之间的键值关系]

bool krsort ( array &$array [, int $sort_flags = SORT_REGULAR ] )

对数组按照键名逆/正向排序,保留键名到数据的关联。主要用于结合数组。

--

$sort_flags

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 位运算),不区分大小写排序字符串。

--

加一个好玩的函数

shuffle 打乱数组

bool shuffle ( array &$array )

本函数打乱(随机排列单元的顺序)一个数组。 它使用的是伪随机数产生器,并不适合密码学的场合。

之后遇到排序问题的回来补充

相关文章