今天来和大家说一说在 php 中,按键名对数组进行排序的方法。关于对数组按键名进行排序,我们要用到 php 的内置的数组相关的函数 ksort() 与 krsort(),下面就来详细的说一下这两个函数的具体作用与用法。

php ksort() 函数

ksort():函数对指定数组按照键名进行升序排序,成功返回 TRUE,失败返回 FALSE

语法:

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 对字符串进行排序,不区分大小写。

php 按键名对数组进行升序排序

示例1:键名为字母进行升序排序

<?php
$arr = array("d"=>"lemon", "a"=>"orange", "b"=>"banana", "c"=>"apple");
ksort($arr);
print_r($arr);
?>

打印结果:

Array
(
    [a] => orange
    [b] => banana
    [c] => apple
    [d] => lemon
)

示例2:php 把数组键名按字符串来处理,进行排序

<?php
$arr = array("name"=>"小明", "sex"=>"男", "age"=>"18", "add"=>"北京");
ksort($arr,SORT_NATURAL);// SORT_NATURAL:键名按字符串来处理
print_r($arr);
?>

打印结果:

Array
(
    [add] => 北京
    [age] => 18
    [name] => 小明
    [sex] => 男
)

PHP krsort() 函数

krsort():按数组的键名进行降序排序,成功返回 TRUE,失败返回 FALSE

语法:

krsort(array,sortingtype);

参数:

其参数与 ksort() 函数相同,可参考上面 ksort() 函数的参数介绍!

php 按键名对数组进行降序排序

php代码:

<?php
$arr = array("d"=>"lemon", "a"=>"orange", "b"=>"banana", "c"=>"apple");
krsort($arr); //按键名进行降序排序
print_r($arr);
?>

打印结果:

Array
(
    [d] => lemon
    [c] => apple
    [b] => banana
    [a] => orange
)