我想显示来自 6 个文件夹的最新图像。图像命名如下:20150126.jpg、20150127.jpg它可以工作,但显示来自第一个目录的所有图像,而不是来自第二个目录等的图像。如何混合它并显示最新的图像?
$directory = "*/";
$pictures = glob("" . $directory . "*.jpg");
$no_pictures = count($pictures)-1;
$limit = $no_pictures-8;
for( $i = $no_pictures; $i >= $limit; $i--){
echo "<img width='300px' src='"".$pictures[$i]."'" />'n";
}
您可以通过对$pictures
数组进行酸痛来解决此问题。如果您希望最新的位于顶部,则需要反向排序或保留输出。
看sort()
:http://php.net/manual/en/function.sort.php
编辑:根据您的输出,我建议使用以下算法(尽管有多种方法可以做到这一点):
- 仅从父目录获取目录列表。您可以将 glob() 与
GLOB_ONLYDIR
选项一起使用。 - 遍历从 1 获取的目录,并获取每个目录的文件名(无需其他路径信息)。首先将文件合并到具有文件名的新数组中。它将具有某种格式化的字符串(您可以使用JSON或仅使用一些简单的分隔符,例如冒号)。例如,新数组将包含以下条目:20150126.jpg:ciazowe、20150127.jpg:event等。
- 对此数组进行排序。
- 像您一样"向后"输出,仅使用正确的路径信息。
你应该看看建议的排序,还有$arr = array_slice($arr, 0, 6); 获得所需的 6.