strnatcmp()

1. 定义

该函数将字符串以自然顺序(人类对数字型字符串进行排序时惯用的比较的算法)比较两个字符串的大小。 如果前者大于后者则返回大于 0 的数,后者大于前者则返回小于 0 的数,相等则返回 0。

注:该函数区分大小写。

2. 语法

strnatcmp ( string $str1 , string $str2 ) : int

3. 参数说明

参数 可选性 数据类型 描述
$str1 必需 字符串 待比较的第一个字符串
$str2 必需 字符串 待比较的第二个字符串

4. 示例

<?php

// strnatcmp()
// 将字符串以自然顺序(人类对**数字型字符串**进行排序时惯用的比较的算法)比较两个字符串的大小

// 常见于文件排序,常规字符串比较时,test11.php 会在 test2.php 的前面
$str1 = 'test11.php';
$str2 = 'test2.php';
$res = strnatcmp($str1, $str2);
var_dump($res);// 输出:int(1)

// 区分大小写
$str1 = 'Test11.php';
$str2 = 'test2.php';
$res = strnatcmp($str1, $str2);
var_dump($res);// 输出:int(-1)

5. 延展阅读

  • strcasecmp():比较两个二进制安全字符串,如果前者大于后者则返回大于 0 的数,后者大于前者则返回小于 0 的数,相等则返回 0(不区分大小写)
  • substr():返回从某位置开始、特定长度的子字符串
  • stristr():返回特定索引或特定子字符串首次出现的位置到字符串结尾的部分(不区分大小写)
  • strcmp():比较两个二进制安全字符串,如果前者大于后者则返回大于 0 的数,后者大于前者则返回小于 0 的数,相等则返回 0
  • strncmp():比较二进制字符串的大小,可指定比较的长度
  • strncasecmp():比较两个字符串中若干个字符开头是否相同(不区分大小写)
  • strnatcasecmp():将字符串以自然顺序(人类对数字型字符串进行排序时惯用的比较的算法)比较两个字符串的大小(不区分大小写)
  • strstr():返回特定索引或特定子字符串首次出现的位置到字符串结尾的部分
  • natsort():使用与人类相同的对字母数字字符串排序的排序算法,对数组的值进行排序,并保留其键名
  • natcasesort():使用与人类相同的对字母数字字符串排序的排序算法,对数组的值进行排序,并保留其键名(不区分大小写)