PHP按文件名排序数组

时间:2012-01-25 16:38:13

标签: php arrays sorting

下面的代码扫描当前文件夹中的word文档,然后吐出一个所有找到的数组......

<?php
    $a=array();
    if ($handle = opendir('.')) {
    while (false !== ($file = readdir($handle))) {
    if(preg_match("/\.doc$/", $file)) 
    $a[]=$file;
    }

    closedir($handle);

    }
    foreach($a as $i){
    echo $i;
    }
?>

这一切都很好,但订单不是我想要的。有没有办法按文件名对结果进行排序?我查看了sort函数,但无法弄清楚如何在我的情况下实现它。

2 个答案:

答案 0 :(得分:5)

您可以使用glob()自动为您排序:

$files = glob('*.doc');

有关详细信息,请参阅PHP on glob()

如果订单不是预期订单,请传递参数GLOB_NOSORT以按照它们在目录中出现的顺序返回文件。

答案 1 :(得分:4)

您可以使用sort()

它就地操作,因此您不会将排序的数组作为返回值。

<?php
    $a=array();
    if ($handle = opendir('.')) {
    while (false !== ($file = readdir($handle))) {
    if(preg_match("/\.doc$/", $file)) 
    $a[]=$file;
    }

    closedir($handle);

    }
    sort($a);
    foreach($a as $i){
    echo $i;
    }
?>