无法对此PHP脚本的结果进行排序

时间:2016-07-21 11:24:43

标签: php

您好我怀疑我很傻,但我是PHP编码的新手。我想要做的就是从下面的这个脚本中按降序排序我的结果,但我不知道要添加什么代码以及添加它的位置。请你帮帮我。

<?php
$d = dir("01-Newsletters");
while (false != ($entry = $d->read())) {
if ($entry != "." && $entry != "..") {
echo "<tr><td>{$entry}</td><td><a href='01-Newsletters/{$entry}' target=_blank><img     src='../../Site_data/Images/more.gif'/></a></td></tr>";}
}
$d->close();
?>

目前正在提供此结果

Previous Newsletters 2014-04-Newsletter.pdf 

2014-07-Newsletter.pdf 

2014-10-Newsletter.pdf 

2015-01-Newsletter.pdf 

2015-04-Newsletter.pdf 

2015-08-Newsletter.pdf 

2 个答案:

答案 0 :(得分:0)

您可以使用以下解决方案:

<?php
$d = dir("01-Newsletters");
$entries = [];

while (false != ($entry = $d->read())) {
    if ($entry != "." && $entry != "..") {
        $entries[] = $entry;
    }
}
$d->close();

//order the entries...
sort($entries, SORT_STRING);
$entries = array_reverse($entries);

//output the $entries in DESC order...
for ($i = 0; $i < count($entries); $i++) {
    echo "<tr><td>{$entries[$i]}</td><td><a href='01-Newsletters/{$entries[$i]}' target=_blank><img src='../../Site_data/Images/more.gif'/></a></td></tr>";
}
?>

答案 1 :(得分:0)

如果文件夹名称是2015-8我假设它是在该特定日期创建的。在此假设的基础上,您可以使用以下方法。获取文件修改时间将其存储在一个数组中,然后对该数组进行排序

$dir  = "jays";
$d = dir($dir);
while (false != ($entry = $d->read())) 
{
    if ($entry != "." && $entry != "..") 
    {
        $files[$entry] = filemtime( $dir.'/' . $entry);
    }
}
arsort($files);
print_r($files);
$d->close();