php - scandir - 排序数字文件名

标签 php scandir

进行了一些搜索,但似乎无法找到我正在寻找的确切答案。

我想使用“scandir($dir)”提取带有编号文件名的文件,但要让它们正确排序。例如,文件名是:

1-something.ext

2-something-else.ext

3-a-third-name.ext

.

.

.

10-another-thing.ext

11-more-names.ext

我遇到的问题是 10-a-fourth-thing.ext 会在 2-something-else.ext 之前显示。我想找到一种比在所有文件名前引入前导“0”更好的方法来解决这个问题。

有什么想法吗?谢谢。

最佳答案

natsort完全满足您的需求。

sort with SORT_NUMERIC 也适用于以数字开头的文件名,但如果还有前面没有数字的名称(所有非数字- 前缀名称将在数字前缀名称之前排序,并且它们相对于彼此的顺序将是随机的而不是字母顺序)。

关于php - scandir - 排序数字文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9727781/

相关文章:

php - 展开文件名以分隔名称和扩展名在 PHP 中不起作用?

php - 按日期有效扫描目录树

php - 正确编号 SQL 查询的一些技巧

php - 无法使用 nginx 实现 php

php - 用 Twig 扫描文件夹

python - 为什么 os.scandir() 速度变慢/如何重组大目录?

c - 如何使用 scandir 在创建顺序中检索文件

php - 从日期范围之间的 mysql 表列中选择

php - 将数据从 PHP 发送到 bash 脚本

php - 具有重复名称的 Codeigniter 路由中的正则表达式