如何使用PHP排序key为字母+数字的数组

你还在为如何使用PHP排序字母+数字的数组而烦恼吗?
当时我就震惊了

今天有个小伙伴在群里问:
如何将一个key为字母+数字的数组按升序排序呢?

举个例子:

$test = [
    'n1' => 22423,
    'n10' => 22423,
    'n2' => 'werwerw',
    'n3' => 22423,
    'n4' => 22423,
    'n5' => 22423,
    'n21' => 22423,
    'n11' => 22423,
];

希望将它排序成这样子:

$test = [
    'n1' => 22423,
    'n2' => 'werwerw',
    'n3' => 22423,
    'n4' => 22423,
    'n5' => 22423,
    'n10' => 22423,
    'n11' => 22423,
    'n21' => 22423,
]

PHP数组函数帮到你

$test = [
    'n1' => 22423,
    'n10' => 22423,
    'n2' => 'werwerw',
    'n3' => 22423,
    'n4' => 22423,
    'n5' => 22423,
    'n21' => 22423,
    'n11' => 22423,
];
ksort($test, SORT_NATURAL);
var_dump($test);

得到的结果:

array (size=8)
  'n1' => int 22423
  'n2' => string 'werwerw' (length=7)
  'n3' => int 22423
  'n4' => int 22423
  'n5' => int 22423
  'n10' => int 22423
  'n11' => int 22423
  'n21' => int 22423

那么这个函数的意思是什么呢?

定义和用法

ksort() 函数对关联数组按照键名进行升序排序。

语法
ksort(array,sortingtype);
参数描述
array必需。规定要进行排序的数组。
sortingtype可选。规定如何排列数组的元素/项目。可能的值:
0 = SORT_REGULAR -默认。把每一项按常规顺序排列(Standard ASCII,不改变类型)。
1 = SORT_NUMERIC - 把每一项作为数字来处理。
2 = SORT_STRING - 把每一项作为字符串来处理。
3 = SORT_LOCALE_STRING - 把每一项作为字符串来处理,基于当前区域设置(可通过 setlocale() 进行更改)。
4 = SORT_NATURAL - 把每一项作为字符串来处理,使用类似 natsort() 的自然排序。
5 = SORT_FLAG_CASE - 可以结合(按位或)SORT_STRING 或 SORT_NATURAL 对字符串进行排序,不区分大小写。
说明

ksort() 函数按照键名对数组排序,为数组值保留原来的键。
可选的第二个参数包含附加的排序标志。
若成功,则返回 TRUE,否则返回 FALSE。

提示

提示:请使用 krsort() 函数对关联数组按照键名进行降序排序。
提示:请使用 asort() 函数对关联数组按照键值进行升序排序。

具体可看: 数组函数

转载于:https://www.cnblogs.com/ailhc/p/7594585.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值