我是PHP新手,需要帮助才能使此工作正常。我正在尝试在PHP页面中列出目录文件夹。到目前为止,它仍然有效,但是文件夹列表以“标准”顺序显示。我需要按“自然”顺序使用它,但无法使其正常工作。
标准订单:
自然顺序:
这是我到目前为止所拥有的:
<?php
$TheFolder = '';
foreach(glob($TheFolder.'*', GLOB_ONLYDIR) as $dir) {
$dir = str_replace($TheFolder, '', $dir);
echo $dir , "<br>";
//echo $dir;
}
?>
我以前一直尝试使用 natsort ,但无法弄清楚。
任何帮助将不胜感激。
答案 0 :(得分:1)
您可以在sort()
标志启用的情况下使用SORT_NATURAL
功能;
像这样:
$array = [1,10,11,12,4,30];
sort($array, SORT_NATURAL);
print_r($array); // Array ( [0] => 1 [1] => 4 [2] => 10 [3] => 11 [4] => 12 [5] => 30 )
所以这样的事情应该起作用:
$directoriesArray = glob($TheFolder.'*', GLOB_ONLYDIR);
sort($directoriesArray, SORT_NATURAL);
foreach($directoriesArray as $dir){
//.. str_replace and echo $dir
}
详细了解sort()函数here
答案 1 :(得分:0)
感谢Mostafa Mohsen向我指出了正确的方向。
以Mostafa的解决方案为基础,需要进行一些小的修改,因为它仍然会引发错误。
这是最终代码,可以正常工作:
<?php
$directoriesArray = glob('*', GLOB_ONLYDIR);
sort($directoriesArray, SORT_NATURAL);
foreach($directoriesArray as $dir){
echo $dir , "<br>";
}
?>