使用Codeigniter创建网站。我已经使用codeigniters目录助手来获取目录中所有文件的文件名:
$this->load->helper('directory'); $files = directory_map('directory_name/', 1);
所有这些都按预期工作,并且我得到目录中文件的列表-print_r($ files)证明了这一点。
但是,文件名都以数字开头:
1_firstfile.doc
2_nextfile.doc
3_another.exe
... ...
11_thisfile.txt
12_filename.pdf
我的问题是文件以我想要的不同顺序返回。我希望按照上面的顺序返回它们,但是相反,它们是这样返回的:
1_firstfile.doc
11_thisfile.txt
12_filename.pdf
2_nextfile.doc
3_another.exe
显然,它们是按字母顺序返回的,但是我需要按数字顺序返回它们。
我已经尝试过了,$files = sort($files,1)
但这似乎只是清空数组。因此,除了更改文件名之外,如何获取数组以所需的顺序排列它们?
所有sort()函数都是“按引用传递”,因此实际上它直接修改了参数,返回成功或失败状态,因此
$files = sort($files)
进行排序$files
,然后将成功状态(布尔值true / false)分配给$files
简单地做
sort($files)
请注意,要按文件名的数字部分进行干净排序,应将带标志的sort()SORT_NATURAL
或natsort()一起使用
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句