使用PHP,我试图显示文件夹和子文件夹中的所有图像,并按日期排序(顶部显示较新)。
来自script的@slashingweapon非常有效。但是我只是不能让它显示按日期排序的图像。
我正在尝试“ filemtime”,但无法使其正常工作(我不是程序员,只是一个小家伙)。
如果有人可以提供一些建议,我会很高兴。
谢谢!
#ifndef __SAW_HPP__
#define __SAW_HPP__
#include <iostream>
#include <sstream>
#include <string>
#include <vector>
// #define DEBUG
using std::vector;
using std::string;
using std::ostream;
namespace saw
{
struct coord
{
int x;
int y;
int z;
string toString(int shift = 0) const;
};
class SAWalk
{
public:
SAWalk(vector<coord> path);
double displacement() { return displ; }
protected:
vector<coord> path;
double displ;
};
class SAWalkBuilder
{
public:
SAWalkBuilder() {}
SAWalk build(int num_steps) const;
static const int SIZE_M = 50;
};
ostream& operator<<(ostream& os, const coord& c);
}
#endif
答案 0 :(得分:1)
要按修改时间对值进行排序,需要将它们读入数组,然后在显示它们之前对其进行排序。为了处理可能具有相同mtime
的文件,我们使用多维数组,然后使用array_multisort
使用mtime
列对多维数组进行排序。我们将所需的输出添加到数组中,以便您可以直接将这些值附加到ehco以便更轻松地输出:
$rdi = new RecursiveDirectoryIterator("uploads/prevImgs/");
$it = new RecursiveIteratorIterator($rdi);
$files = array();
foreach($it as $oneThing) {
if (is_file($oneThing)) {
$files[] = array('mtime' => filemtime($oneThing), 'image' => '<img src="'.$oneThing.'" /><br />');
}
}
array_multisort(array_column($files, 'mtime'), $files);
echo implode(array_column($files, 'image'));