PHP排序数组的值为0,1,2 ... 8,9,10,11,12等

时间:2013-04-26 16:10:23

标签: php sorting numeric

我的数组的值以单个数字开头,然后增加到数千个。

我想对$ id进行排序,但结果如下:

0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 ....等

不是

0,1,10,11,12,13,14,15,2,3,4,5,6,7,8,9 ....等

如果不调整数组中的值,是否可以这样做?

谢谢:)

2 个答案:

答案 0 :(得分:5)

我认为

 natsort ( array &$array )

是解决方案。从php手册:

<?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);
?>

The above example will output:

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
)

答案 1 :(得分:0)

试试:

sort($myarr, SORT_STRING);