如何使用readdir实现自定义文件排序
首先使用readdir或scandir获取目录内容,过滤掉非文件项后,编写自定义比较函数(支持按文件名长度、修改时间或文件大小),再调用usort排序,即可实现根据多种规则灵活排序的目录文件列表,提高文件管理效率。
readdir 这个函数,大家应该都不陌生,它专门用来读取目录里的文件和子目录。但如果你想按自己的规则排序——比如按文件名长度、修改时间,或者自定义的某种权重——那该怎么办?其实思路很简单:先用 readdir 拿到目录内容,扔到一个数组里,再写一个自定义的比较函数,最后用 usort 排个序就行了。

下面这段 PHP 代码,就是一个完整的实战示例:
这段代码里,先用 scandir 把目录内容全部读出来,然后用 array_filter 把 . 和 .. 这一类非文件项过滤掉。接着写了一个 customSort 函数,里面放的就是你想要的排序逻辑——示例里按文件名长度排,当然你可以换成按修改时间、文件大小,甚至按文件名的字母反序都行。最后用 usort 排好序,再循环输出。
关键就在 customSort 这个函数里,你可以根据实际需求自由发挥。比如想按文件修改时间排序,就换成 filemtime() 比较;想按文件大小,就用 filesize()。灵活度很高,应付日常的目录排序需求完全够用。
Photoshop 2026 是 Adobe 推出的专业图像处理与视觉设计软件,支持 Windows、macOS 和 iPad 等平台,广泛应用于摄影修图、电商设计、平面海报、数字绘画及视觉合成等创作场景。
Blender 是一款免费开源、跨平台的专业 3D 创作软件,集建模、动画、渲染、视频编辑与视觉合成等功能于一体,广泛应用于影视动画、游戏设计和建筑可视化等领域。软件支持 Cycles 物理渲染器与 Eevee 实时渲染引擎,并提供多边形建模、骨骼绑定、物理模拟等专业工具。Blender 兼容 Windows、macOS 和 Linux 系统,安装包轻巧、运行流畅,依托活跃的全球开发者社区持续更新,是从初学者到专业创作者都值得选择的正版 3D 创作工具。
Photoshop 2026 是 Adobe 推出的专业图像处理与视觉设计软件,支持 Windows、macOS 和 iPad 等平台,广泛应用于摄影修图、电商设计、平面海报、数字绘画及视觉合成等创作场景。
Blender 是一款免费开源、跨平台的专业 3D 创作软件,集建模、动画、渲染、视频编辑与视觉合成等功能于一体,广泛应用于影视动画、游戏设计和建筑可视化等领域。软件支持 Cycles 物理渲染器与 Eevee 实时渲染引擎,并提供多边形建模、骨骼绑定、物理模拟等专业工具。Blender 兼容 Windows、macOS 和 Linux 系统,安装包轻巧、运行流畅,依托活跃的全球开发者社区持续更新,是从初学者到专业创作者都值得选择的正版 3D 创作工具。















