我希望的排序结果是这样的:
1
2
3
...
10
11
但是glob/globiterator返回的却是这鸟样
1
10
100
1000
2
20
200
2000
我的目的是实现文件合并,顺序打乱了就没法合了,搜了半天也没找着,请问我这种情况该咋办呢
我希望的排序结果是这样的:
1
2
3
...
10
11
但是glob/globiterator返回的却是这鸟样
1
10
100
1000
2
20
200
2000
我的目的是实现文件合并,顺序打乱了就没法合了,搜了半天也没找着,请问我这种情况该咋办呢
1 回答4k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
2 回答2.2k 阅读✓ 已解决
1 回答1.4k 阅读✓ 已解决
2 回答2.2k 阅读
1 回答569 阅读✓ 已解决
785 阅读
glob 方法的第二个参数 flags,可以指定为
GLOB_NOSORT
,即表示不对结果进行排序,按照原始顺序。GlobIterator 没有这个 flags。
这种排序方式叫做 “自然排序”,你可以使用 php 中提供的自然排序方法来排序,使用 sort 的第二个参数为
SORT_NATURAL
或者使用 natsort 方法也可以。对于 glob 方法,设置 flags 参数就可以了,但是对于 GlobIterator 就没有办法了,只能使用 iterator_to_array 方法把迭代器转为数组再操作了,但是这也就让迭代器失去了意义了。