如何使用PHP按最后修改时间对图片进行排序?
实现图库图片按从新到旧排序的解决方案
你可以通过filemtime()获取每个图片文件的最后修改时间,自定义排序规则对文件列表进行倒序排列即可实现需求,原代码中存在两次读取目录的冗余逻辑,优化后代码如下:
<?php // 匹配Pictures目录下的常用格式图片,避免匹配到非图片文件 $files = glob("Pictures/*.{jpg,jpeg,png,gif,webp}", GLOB_BRACE); // 按文件修改时间从新到旧排序 usort($files, function($a, $b) { // 后修改的文件时间戳更大,排在前面 return filemtime($b) - filemtime($a); }); // 遍历输出图片 foreach ($files as $image) { print $image ."<br />"; echo '<img src="'.$image .'" alt="图片" />'."<br /><br />"; } ?>
注意事项
- 如果你需要按文件创建时间排序:Windows环境可以将
filemtime()替换为filectime();Linux环境需要使用PHP 8.0及以上版本的filebirthtime()函数才能获取正确的文件创建时间 - 使用
foreach遍历文件列表比原代码的for计数遍历写法更简洁,不需要手动维护索引计数
内容的提问来源于stack exchange,提问作者Craig E
相关产品推荐
相关产品推荐

