基本上,我有一堆文件,它们都有一个共同的前缀(logo%d.jpg
)。
当使用ls
查看它们或者在PHP中循环遍历目录时,我没有按照数字顺序接收到它们,这意味着logo1.jpg、logo2.jpg
等。
相反,我得到的是按字母顺序排列的,例如:
logo1.jpg、logo10.jpg、logo11.jpg ... logo19.jpg、logo2.jpg
(而不是logo20.jpg
)
有没有办法按数字顺序输出它们?logo1、logo2、logo3等
基本上,我有一堆文件,它们都有一个共同的前缀(logo%d.jpg
)。
当使用ls
查看它们或者在PHP中循环遍历目录时,我没有按照数字顺序接收到它们,这意味着logo1.jpg、logo2.jpg
等。
相反,我得到的是按字母顺序排列的,例如:
logo1.jpg、logo10.jpg、logo11.jpg ... logo19.jpg、logo2.jpg
(而不是logo20.jpg
)
有没有办法按数字顺序输出它们?logo1、logo2、logo3等
natsort
Docs函数对数组进行排序:$array = array('logo1','logo2','logo12');
natsort($array);
这给出了(演示):
array(3) {
[0]=>
string(5) "logo1"
[1]=>
string(5) "logo2"
[2]=>
string(6) "logo12"
}
sprintf
来命名文件,那么标准的排序仍然可以工作:`logo%03d.jpg`
会生成哪个
logo001.jpg
对于十进制 1
。
如果你正在使用ls
,就像你所说的那样...
ls | sort -n
会有作用。