我正在使用
foreach(glob("config/pages/*.php") as $page){
获取config/pages/
目录中所有文件的列表我是否可以先显示最旧的文件,最新的文件最后显示?
我想要制作出所有这些的导航菜单。我的完整源代码如下,但我需要先显示最旧的文件,也许我可以为每个文件添加一个变量,如:`$ order = 1;'数字是列表中的顺序?
所以例如对于页面home.php
,$order
将等于0并且about.php
将等于1.然后以某种方式按照从0开始的顺序排序?
<ul class="sidebar-nav">
<li class="sidebar-brand"><a href="#"><?php echo $config['site_title']; ?></a></li>
<?php
$files = glob("config/pages/*.php");
$files = array_combine(array_map("filemtime", $files), $files);
ksort($files);
foreach($files as $page){
// Remove the conifg/pages/ from the string
$strip1 = str_replace('config/pages/', '', $page);
// Remove the .php from the string
$strip2 = str_replace('.php', '', $strip1);
// Uppercase the first letter in the string
$capit = ucfirst($strip2);
// Re-define the string as the display title
$title = $capit;
// Remove the .php and replace it with .html
$html = str_replace('.php', '.html', $strip1);
// Re-define the string for the link url
$link = $html;
// Display the end string with html elements to user
echo "<li><a href='".$link."'>".$title."</a></li>";
}
?>
答案 0 :(得分:5)
试试这段代码。我在我的项目中使用过。请检查。
$myarray = glob("config/pages/*.php");
usort($myarray, function($a,$b){
return filemtime($a) - filemtime($b);
});
答案 1 :(得分:0)
我分三步完成。先阅读你的清单。然后创建一个具有文件修改时间的关联数组,然后按升序排序。
$files = glob("config/pages/*.php");
$files = array_combine(array_map("filemtime", $files), $files);
ksort($files);
因此,最旧的文件将位于列表顶部。