如何将项目数组排序为数字?

时间:2012-03-21 18:20:03

标签: php

我在幻灯片中加载了许多文件,我按照客户要求显示的顺序编号。

我用glob $pics = glob("images/slideshow/*.jpg", GLOB_NOSORT);抓住它们但是由于某种原因我得到了旧的Windows排序错误,其中11个被排序在2以上。

例如,

Array
(
    [0] => images/slideshow/1.jpg
    [1] => images/slideshow/14.jpg
    [2] => images/slideshow/15.jpg
    [3] => images/slideshow/16.jpg
    [4] => images/slideshow/18.jpg
    [5] => images/slideshow/2.jpg
    [6] => images/slideshow/20.jpg
    [7] => images/slideshow/21.jpg
    [8] => images/slideshow/22.jpg
    [9] => images/slideshow/23.jpg
    [10] => images/slideshow/24a.jpg
    [11] => images/slideshow/25.jpg
    [12] => images/slideshow/26.jpg
    [13] => images/slideshow/29.jpg
    [14] => images/slideshow/3.jpg
    [15] => images/slideshow/36.jpg
    [16] => images/slideshow/38.jpg
    [17] => images/slideshow/4.jpg
    [18] => images/slideshow/40.jpg
    [19] => images/slideshow/41.jpg
    [20] => images/slideshow/5.jpg
    [21] => images/slideshow/6.jpg
    [22] => images/slideshow/7.jpg
)

我通过asort()运行它,我似乎无法找出为什么这不起作用,缺少它是关于它们的字符串,而不是严格的数字。

1 个答案:

答案 0 :(得分:6)

结帐natsort

  

此函数实现了一个排序字母数字的排序算法   在保持关键/价值的同时,人类的方式   关联。

$array2 = array("img12.png", "img10.png", "img2.png", "img1.png");

print_r($array2);

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