natsort
natsort
(PHP 4, PHP 5, PHP 7)
natsort - 使用“自然顺序”算法对数组进行排序
描述
bool natsort ( array &$array )
该函数实现了一种排序算法,该算法按照人类的方式命令字母数字字符串,同时保持键/值关联。这被描述为“自然排序”。在下面的例子中可以看到这个算法和常规计算机字符串排序算法(在sort()中使用)之间的区别。
注意
:如果两个成员比较相等,则它们在已排序数组中的相对顺序是未定义的。
参数
array
输入数组。
返回值
TRUE
成功或FALSE
失败时返回。
更新日志
版本 | 描述 |
---|---|
5.2.10 | 零填充的数字字符串(例如'00005')现在基本上忽略了0填充。 |
例子
示例#1 natsort()示例演示基本用法
<?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
?>
上面的例子将输出:
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()示例演示潜在的陷阱
<?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
?>
上面的例子将输出:
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
)