natsort

(PHP 4, PHP 5)

natsort --  用“自然排序”算法对数组排序

说明

void natsort ( array array )

本函数实现了一个和人们通常对字母数字字符串进行排序的方法一样的排序算法,这被称为“自然排序”。本算法和通常的计算机字符串排序算法(用于 sort())的区别示例如下:

例子 1. natsort() 例子

<?php
$array1
= $array2 = array ("img12.png", "img10.png", "img2.png", "img1.png");

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

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

以上代码显示结果为:

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

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

更多信息见 Martin Pool 的 Natural Order String Comparison 页面。

注: 如果你想保持索引/值的关联,考虑使用 uasort($arr, 'strnatcmp')

参见 natcasesort()strnatcmp()strnatcasecmp()