natsort()

1. 定义

该函数使用与人类相同的对字母数字字符串排序的排序算法,对数组的值进行排序,并保留其键名。 成功时返回TRUE,失败则返回FALSE。

注:该函数区分大小写。

2. 语法

natsort ( array &$array ) : bool

3. 参数说明

参数 可选性 数据类型 描述
$array 必需 数组 待自然排序的数组

4. 示例

<?php

// natsort()
// 使用与人类相同的对字母数字字符串排序的排序算法,对数组的值进行排序,并保留其键名

$arr = ['1.php', '2.php', '3.php', '10.php', '11.php', '110.php', '211.php'];

// 常规排序
sort($arr);
var_dump($arr);
/* 输出:
array(7) {
  [0]=>
  string(5) "1.php"
  [1]=>
  string(6) "10.php"
  [2]=>
  string(6) "11.php"
  [3]=>
  string(7) "110.php"
  [4]=>
  string(5) "2.php"
  [5]=>
  string(7) "211.php"
  [6]=>
  string(5) "3.php"
}
*/

// 自然顺序排序
natsort($arr);
var_dump($arr);
/* 输出:
array(7) {
  [0]=>
  string(5) "1.php"
  [4]=>
  string(5) "2.php"
  [6]=>
  string(5) "3.php"
  [1]=>
  string(6) "10.php"
  [2]=>
  string(6) "11.php"
  [3]=>
  string(7) "110.php"
  [5]=>
  string(7) "211.php"
}
*/

5. 延展阅读

  • natcasesort():使用与人类相同的对字母数字字符串排序的排序算法,对数组的值进行排序,并保留其键名,不区分大小写
  • strnatcmp():将字符串以自然顺序(人类对数字型字符串进行排序时惯用的比较的算法)比较两个字符串的大小
  • strnatcasecmp():将字符串以自然顺序(人类对数字型字符串进行排序时惯用的比较的算法)比较两个字符串的大小(不区分大小写)