我尝试按日期/时间对文件夹的内容进行排序。 我的代码bellow正确地获取了所有内容,但它们遍布整个地方,并且它们没有按日期/时间排序。
我的代码:
if(isset($_GET['dir'])) {
$directory = $_GET['dir'];
$dir = "".$directory."";
$files = scandir($dir);
//rsort($files);
$TIMEANDATE = date("F d Y h:i A");
foreach ($files as $file) {
$date = filemtime(''.$dir.'/'.$file.'');
if ($file != '.' && $file != '..') {
array_multisort(array_map('filemtime', $file), SORT_ASC, $file);
$filesize = human_filesize(filesize(''.$dir.'/'.$file.''));
$all_doc .= "<tr>
<td><input type='checkbox'/></td>
<td>".$fileExt." <a class='defaults' href='" . $dir ."/". $file . "'>". $file ."</a> <a href=''><i title='Move' class='fa fa-refresh'></i></a>
<a href='folder.php?del=" . $dir ."/". $file . "'><i title='Delete' class='fa fa-times'></i></a>
</td>
<td>Status</td>
<td>".date('F d Y h:i A', $date)."</td>
<td>".$filesize."</td>
</td>
</tr>";
$i++;
}
}
}
我尝试了这行代码,但它并没有对它们进行排序:
array_multisort(array_map('filemtime', $file), SORT_ASC, $file);
有人可以就此提出建议吗?
任何帮助将不胜感激。
编辑:此问题在其他帖子中没有答案,因为代码明显不同,我无法更改我的代码以反映其他人员在其他帖子上的代码。所以我需要使用自己的代码。
答案 0 :(得分:1)
这应该适合你:
(你的代码中有一些东西,你不能告诉我们他们做了什么,所以我修改了它以便这段代码可以工作。这里我只是用glob()
得到所有文件然后我排序我使用usort()
进行的最后修改filemtime()
,然后我只打印文件)
<?php
if(isset($_GET['dir'])) {
$dir = $_GET['dir'];
$files = glob($dir . "/*.*");
usort($files, function($a, $b){
if(filemtime($a) == filemtime($b))
return 0;
return filemtime($a) > filemtime($b) ? 1 : -1;
});
echo "<table border='1'>";
foreach($files as $file) {
?>
<tr>
<td><input type="checkbox" /></td>
<td><?php echo pathinfo($file)["extension"]; ?><a class="defaults" href="<?php echo $file;?>"><?php echo basename($file);?></a><i title="Move" class="fa fa-refresh"></i><a href="folder.php?del=<?php echo $file; ?>"><i title="Delete" class="fa fa-times"></i></a></td>
<td>Status</td>
<td><?php echo date("F d Y h:i A", filemtime($file));?></td>
<td><?php echo filesize($file);?></td>
</tr>
<?php
}
echo "</table>";
}
?>
答案 1 :(得分:-1)
$files = glob('/bla/bla/*');
if (!$files) {
$files = array();
}
foreach ($files as & $file) {
$file = array(
'modified_by' => filemtime($file),
'file_name' => $file
);
}
array_multisort($files);
var_dump($files);