Hello! 欢迎来到小浪资源网!



PHP GlobIterator如何进行自然排序?


PHP GlobIterator如何进行自然排序?

php 中 globiterator 排序

问题描述:
在使用 php 的 globiterator 进行文件遍历时,遇到排序问题,返回的结果是无序的,希望按照自然顺序进行排序。

问题解答:
php 中对 glob 返回的结果进行排序有两种方法:使用 glob 函数的 flags 参数或使用 natsort 函数。

使用 glob 函数的 flags 参数:

立即学习PHP免费学习笔记(深入)”;

glob('*.txt', glob_nosort);

设置 flags 参数为 glob_nosort 可以取消自动排序。

使用 natsort 函数:

$arr = glob('*.txt'); natsort($arr);

natsort 函数可以对字符串数组进行自然排序。

对于 globiterator,由于没有 flags 参数,无法直接修改排序规则。只能使用 iterator_to_array 方法将其转换为数组再进行排序:

$iterator = new GlobIterator('*.txt'); $arr = iterator_to_array($iterator); natsort($arr);

需要注意的是,将 globiterator 转换为数组会使其失去迭代器的意义。

相关阅读