strnatcmp

(PHP 4, PHP 5, PHP 7)

strnatcmp使用自然排序算法比较字符串

说明

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

该函数实现了以人类习惯对数字型字符串进行排序的比较算法,这就是“自然顺序”。注意该比较区分大小写。

参数

str1

第一个字符串。

str2

第二个字符串。

返回值

与其他字符串比较函数类似,如果 str1 小于 str2 返回 < 0; 如果 str1 大于 str2 返回 > 0;如果两者相等,返回 0。

范例

下面的例子展示了该算法与计算机常规字符串比较算法( strcmp() 所使用的)的区别:

<?php
$arr1 
$arr2 = array("img12.png""img10.png""img2.png""img1.png");
echo 
"Standard string comparison\n";
usort($arr1"strcmp");
print_r($arr1);
echo 
"\nNatural order string comparison\n";
usort($arr2"strnatcmp");
print_r($arr2);
?>

以上例程会输出:

Standard string comparison
Array
(
    [0] => img1.png
    [1] => img10.png
    [2] => img12.png
    [3] => img2.png
)

Natural order string comparison
Array
(
    [0] => img1.png
    [1] => img2.png
    [2] => img10.png
    [3] => img12.png
)
更多信息,参见:Martin Pool 的 » 自然顺序的字符串比较 page.

参见

  • preg_match() - 执行匹配正则表达式
  • strcasecmp() - 二进制安全比较字符串(不区分大小写)
  • substr() - 返回字符串的子串
  • stristr() - strstr 函数的忽略大小写版本
  • strcmp() - 二进制安全字符串比较
  • strncmp() - 二进制安全比较字符串开头的若干个字符
  • strncasecmp() - 二进制安全比较字符串开头的若干个字符(不区分大小写)
  • strnatcasecmp() - 使用“自然顺序”算法比较字符串(不区分大小写)
  • strstr() - 查找字符串的首次出现
  • natsort() - 用“自然排序”算法对数组排序
  • natcasesort() - 用“自然排序”算法对数组进行不区分大小写字母的排序

相关文章
php 数组 函数 对多个数组或多维数组进行排序php 数组 函数 带索引检查计算数组的差集,用回调函数比较数据和索引php bzip2 函数 把一个字符串压缩成 bzip2 编码数据php fann 函数 使用 rprop 算法训练时,设置下降因子php 文件系统函数 将一个字符串写入文件php hash 函数 可防止时序攻击的字符串比较php 数组 函数 用“自然排序”算法对数组进行不区分大小写字母的排序php 数组 函数 用“自然排序”算法对数组排序php 字符串 函数 二进制安全比较字符串(不区分大小写)php 字符串 函数 二进制安全字符串比较php 字符串 函数 基于区域设置的字符串比较php 字符串 函数 使用“自然顺序”算法比较字符串(不区分大小写)php 字符串 函数 使用自然排序算法比较字符串php 字符串 函数 二进制安全比较字符串开头的若干个字符(不区分大小写)php 字符串 函数 二进制安全比较字符串开头的若干个字符php 字符串 函数 二进制安全比较字符串(从偏移位置比较指定长度)php 数组 函数 使用用户自定义的比较函数对数组中的值进行排序并保持索引关联php 数组 函数 使用用户自定义的比较函数对数组中的键名进行排序php 数组 函数 使用用户自定义的比较函数对数组中的值进行排序php php 选项/信息 函数 对比两个「php 规范化」的版本数字字符串
关注编程学问公众号