PHP

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 )