[英]Natural Order needed for directory list
我是PHP新手,需要帮助才能使此工作正常。 我正在尝试在PHP页面中列出目录文件夹。 到目前为止,它仍然有效,但是文件夹列表以“标准”顺序显示。 我需要以“自然”顺序使用它,但无法使其正常工作。
标准订单:
自然顺序:
这是我到目前为止的内容:
<?php
$TheFolder = '';
foreach(glob($TheFolder.'*', GLOB_ONLYDIR) as $dir) {
$dir = str_replace($TheFolder, '', $dir);
echo $dir , "<br>";
//echo $dir;
}
?>
我之前一直尝试使用natsort ,但无法弄清楚。
任何帮助将不胜感激。
您可以在SORT_NATURAL
标志的情况下使用sort()
函数;
像这样:
$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()函数的更多信息
感谢Mostafa Mohsen向我指出了正确的方向。
以Mostafa的解决方案为基础,需要进行一些小的修改,因为它仍然会引发错误。
这是最终代码,可以正常工作:
<?php
$directoriesArray = glob('*', GLOB_ONLYDIR);
sort($directoriesArray, SORT_NATURAL);
foreach($directoriesArray as $dir){
echo $dir , "<br>";
}
?>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.