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

Php 使用scandir自定义目录列表顺序的最佳方法是什么,php,Php,我使用上面的脚本列出了这些目录,现在有一个要求,我需要按自定义顺序显示这些目录。有些具有优先权,应该显示在其他之前 实现这一点的最佳方式是什么 我认为有一种方法可以根据顺序在每个目录前添加数字,并使用脚本分割数字并执行某种顺序 但是,其他方法可以使用确切的目录名和顺序数字在脚本中定义数组,基于此,我们可以扫描控制器,并以某种方式更改脚本中现有数组中的顺序 不要回显它们,而是将代码写入一个数组,将要排序的值作为数组键。然后使用ksort或其他PHP排序函数对数组进行排序,然后按新排序的顺序打印数组

我使用上面的脚本列出了这些目录,现在有一个要求,我需要按自定义顺序显示这些目录。有些具有优先权,应该显示在其他之前

实现这一点的最佳方式是什么

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


但是,其他方法可以使用确切的目录名和顺序数字在脚本中定义数组,基于此,我们可以扫描控制器,并以某种方式更改脚本中现有数组中的顺序

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

scandir是必须的,还是您可以更改它?我可以更改它。这取决于解决方案。现在,我通过在每个目录名前面添加数字,并在脚本中分解它,然后在一个新数组中赋值,然后进行键排序来实现这一点。有更好的主意吗?谢谢spudley,这就是我目前正在做的。有没有更好的解决办法。实现这一目标的任何其他最佳方法。
$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>';    
        }  
    }
}