You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel中如何对文件名集合进行自然排序?

问题:Laravel存储读取文件无法按自然字母顺序排序

我在通过Laravel的Storage组件读取public/uploads目录下的文件时,碰到了排序异常的问题:本地文件系统里文件的显示顺序是正确的,但读取得到的文件数组没法按预期的字母顺序排列。由于后续要基于这些文件生成对应的数据表记录,必须保证读取后的顺序准确。

尝试过的无效方法

  • 使用Laravel集合的排序方法,没有效果
  • 将文件数组转为普通数组后调用asort()函数,同样无效

获取文件数组的代码如下:

$files = Storage::disk('public')->files("uploads"); 
dd($files);

解决方案

最终通过PHP原生的sort()函数,并指定SORT_NATURAL排序规则,成功解决了排序问题,代码如下:

$files = Storage::disk('public')->files("uploads");
sort($files, SORT_NATURAL);

排序后的结果完全符合预期。

内容的提问来源于stack exchange,提问作者David Garcia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 22:45:33