PHP 8.4.2 Released!

strnatcasecmp

(PHP 4, PHP 5, PHP 7, PHP 8)

strnatcasecmp使用“自然顺序”算法比较字符串(不区分大小写)

说明

strnatcasecmp(string $string1, string $string2): int

该函数实现了以人类习惯对数字型字符串进行排序的比较算法。除了不区分大小写,该函数的行为与 strnatcmp() 类似。更多信息,参见:Martin Pool 的» 自然顺序的字符串比较页面。

参数

string1

第一个字符串。

string2

第二个字符串。

返回值

如果 string1 小于 string2,则返回小于 0 的值; 如果 string1 大于 string2,则返回大于 0 的值; 如果它们相等,则返回 0。 除了它的符号外,不能从返回值中可靠推断出任何特定的含义。

更新日志

版本 说明
8.2.0 当字符串长度不相等时,此函数不再保证返回 strlen($string1) - strlen($string2), 而可能返回 -11

示例

示例 #1 strnatcasecmp() 示例

<?php

var_dump
(strnatcasecmp('Apple', 'Banana'));
var_dump(strnatcasecmp('Banana', 'Apple'));
var_dump(strnatcasecmp('apple', 'Apple'));
?>

以上示例会输出:

int(-1)
int(1)
int(0)

参见

  • preg_match() - 执行匹配正则表达式
  • strcmp() - 二进制安全字符串比较
  • strcasecmp() - 二进制安全比较字符串(不区分大小写)
  • substr() - 返回字符串的子串
  • stristr() - strstr 函数的忽略大小写版本
  • strncasecmp() - 二进制安全比较字符串开头的若干个字符(不区分大小写)
  • strncmp() - 二进制安全比较字符串开头的若干个字符
  • strstr() - 查找字符串的首次出现
  • setlocale() - 设置区域信息

添加备注

用户贡献的备注 2 notes

up
9
chatfielddaniel at googlemail dot com
13 years ago
The function treats '_' as after letters and numbers when it would be placed before logically.
up
4
Marco
8 years ago
Use strnatcmp to avoid the _ problem as mentioned below;

<< The function treats '_' as after letters and numbers when it would be placed before logically. >>
To Top