PHP:Globiterator怎么排序?

我希望的排序结果是这样的:
1
2
3
...
10
11
但是glob/globiterator返回的却是这鸟样
1
10
100
1000
2
20
200
2000
我的目的是实现文件合并,顺序打乱了就没法合了,搜了半天也没找着,请问我这种情况该咋办呢

阅读 1.8k
1 个回答

glob 方法的第二个参数 flags,可以指定为 GLOB_NOSORT,即表示不对结果进行排序,按照原始顺序。

GlobIterator 没有这个 flags。

这种排序方式叫做 “自然排序”,你可以使用 php 中提供的自然排序方法来排序,使用 sort 的第二个参数为 SORT_NATURAL 或者使用 natsort 方法也可以。

对于 glob 方法,设置 flags 参数就可以了,但是对于 GlobIterator 就没有办法了,只能使用 iterator_to_array 方法把迭代器转为数组再操作了,但是这也就让迭代器失去了意义了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题