基本上,我有一堆带有共同前缀的文件(logo%d.jpg).
当使用ls查看它们甚至在PHP中循环遍历目录时,我没有按数字顺序接收它们,这意味着logo1.jpg,logo2.jpg.
相反,我按字母顺序排列它们,例如:
logo1.jpg,logo10.jpg,logo11.jpg … logo 19.jpg,logo2.jpg(而不是logo20.jpg)
有没有办法按数字顺序输出它们? logo1,logo2,logo3 ..等
解决方法:
您可以将它们放在一个数组中,并使用natsort
Docs函数对数组进行排序:
$array = array('logo1','logo2','logo12');
natsort($array);
给出了(Demo):
array(3) {
[0]=>
string(5) "logo1"
[1]=>
string(5) "logo2"
[2]=>
string(6) "logo12"
}
您正在寻找的订单通常称为自然订单.
或者,您可以为数字添加前缀,例如如果您已经使用sprintf
命名文件,那么标准排序顺序仍然有效:
`logo%03d.jpg`
哪会产生
logo001.jpg
小数点1.