【发布时间】:2011-08-03 10:30:48
【问题描述】:
所有
我正在尝试组织一个由 foreach 循环返回的文件列表 - 这些文件标有一个月:例如报告 - 2011 年 1 月,报告 - 2011 年 2 月等
他们目前以随机顺序吐出它们,例如 7 月、2 月、12 月、3 月,我希望它们按 1 月、2 月、3 月、4 月等顺序出现。
你们能否说明我将如何做到这一点。
这是我的功能:
function getDirectoryList($directory) {
$results = array();
$handler = opendir($directory);
while ($file = readdir($handler)) {
if ($file != "." && $file != ".." && $file != "img") {
$results[] = $file;
}
}
closedir($handler);
return $results;
}
这是对函数的调用:(注意“文件路径”是使用define()设置的)
$files = getDirectoryList(filepath.$username."/".date("Y"));
这是 foreach 循环:
foreach ($files as $f) {
$path_parts = pathinfo(filepath.$f);
$dir = $path_parts['dirname'];
$base = $path_parts['basename'];
$ext = $path_parts['extension'];
$fname = $path_parts['filename'];
echo "<div class='file ".$ext."'>".
"<a href='".downloadpath.$username."/".$f."' target='_blank' title='Download $f'>". $fname ."</a>
<span class='del'><a href='../inc/delete.php?id=".$_GET["id"]."&f=$f' title='Delete $f'>Delete</a></span>
</div>";
}
【问题讨论】:
-
为什么不对数组使用排序?
-
问题本质上是“如何按日期排序这个数组”...
sort()不会那样做。