使用scandir自定义目录列表顺序的最佳方法是什么

时间:2011-06-15 13:54:47

标签: php

$dir    = $_SERVER['DOCUMENT_ROOT'] . '/images/myfav/';
$dirFiles = scandir($dir);
foreach ( $dirFiles as $k => $v)
{   
    if (is_dir($dir . "/" . $v) && $v != '.' && $v != '..' )
    {
        if ( ($files = @scandir($dir . "/" . $v)) && (count($files) > 2) )  
        {  
            $link = strtolower(str_replace(' ','-',$v));
            echo '<a href="/myfav/' . $link . '" title="' . $v . '"';
            if ($_GET['subpage'] == $link) echo ' class="selected"';
            echo '><span>' . $v . '</span></a>';    
        }  
    }
}

我使用上面的脚本列出目录,现在有一个要求,我需要以自定义顺序显示这些目录。有些人优先,应该先显示出来。

最好的方式是什么。

我认为可以根据顺序在每个目录前添加数字,并使用脚本分割数字并执行某种顺序。

然而,其他方式可以在脚本中使用确切的目录名称和顺序数字来定义数组,并且基于此我们可以扫描导演并以某种方式在脚本中以现有数组的顺序进行定位?

1 个答案:

答案 0 :(得分:0)

不是回显它们,而是将代码写入数组,并将值作为数组键进行排序。然后使用ksort()或其他一个PHP排序函数对数组进行排序,然后以新排序的顺序打印数组。