首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

natsort

(PHP 4, PHP 5, PHP 7)

natsort - 使用“自然顺序”算法对数组进行排序

描述

代码语言:javascript
复制
bool natsort ( array &$array )

该函数实现了一种排序算法,该算法按照人类的方式命令字母数字字符串,同时保持键/值关联。这被描述为“自然排序”。在下面的例子中可以看到这个算法和常规计算机字符串排序算法(在sort()中使用)之间的区别。

注意:如果两个成员比较相等,则它们在已排序数组中的相对顺序是未定义的。

参数

array

输入数组。

返回值

TRUE成功或FALSE失败时返回。

更新日志

版本

描述

5.2.10

零填充的数字字符串(例如'00005')现在基本上忽略了0填充。

例子

示例#1 natsort()示例演示基本用法

代码语言:javascript
复制
<?php
$array1 = $array2 = array("img12.png", "img10.png", "img2.png", "img1.png");

asort($array1);
echo "Standard sorting\n";
print_r($array1);

natsort($array2);
echo "\nNatural order sorting\n";
print_r($array2);
?>

上面的例子将输出:

代码语言:javascript
复制
Standard sorting
Array
(
    [3] => img1.png
    [1] => img10.png
    [0] => img12.png
    [2] => img2.png
)

Natural order sorting
Array
(
    [3] => img1.png
    [2] => img2.png
    [1] => img10.png
    [0] => img12.png
)

有关更多信息,请参阅:Martin Pool »自然顺序字符串比较页面。

示例#2 natsort()示例演示潜在的陷阱

代码语言:javascript
复制
<?php
echo "Negative numbers\n";
$negative = array('-5','3','-2','0','-1000','9','1');
print_r($negative);
natsort($negative);
print_r($negative);

echo "Zero padding\n";
$zeros = array('09', '8', '10', '009', '011', '0'); 
print_r($zeros);
natsort($zeros);
print_r($zeros);
?>

上面的例子将输出:

代码语言:javascript
复制
Negative numbers
Array
(
    [0] => -5
    [1] => 3
    [2] => -2
    [3] => 0
    [4] => -1000
    [5] => 9
    [6] => 1
)
Array
(
    [2] => -2
    [0] => -5
    [4] => -1000
    [3] => 0
    [6] => 1
    [1] => 3
    [5] => 9
)

Zero padding
Array
(
    [0] => 09
    [1] => 8
    [2] => 10
    [3] => 009
    [4] => 011
    [5] => 0
)
Array
(
    [5] => 0
    [1] => 8
    [3] => 009
    [0] => 09
    [2] => 10
    [4] => 011
)

扫码关注腾讯云开发者

领取腾讯云代金券