Php 以数字顺序而不是字母顺序列出文件?
基本上,我有一堆带有公共前缀的文件(Php 以数字顺序而不是字母顺序列出文件?,php,linux,unix,ffmpeg,Php,Linux,Unix,Ffmpeg,基本上,我有一堆带有公共前缀的文件(logo%d.jpg) 当使用ls查看它们时,甚至在PHP中循环遍历目录时,我也不会按数字顺序接收它们,这意味着logo1.jpg、logo2.jpg 而是按字母顺序排列,比如: logo1.jpg、logo10.jpg、logo11.jpg。。。logo 19.jpg,logo 2.jpg(代替logo 20.jpg) 有没有办法按数字顺序输出它们标识1、标识2、标识3。。等等。加载到一个数组中,如果您像您所说的那样使用ls,请使用 ls | sort -n
logo%d.jpg
)
当使用ls
查看它们时,甚至在PHP中循环遍历目录时,我也不会按数字顺序接收它们,这意味着logo1.jpg、logo2.jpg
而是按字母顺序排列,比如:
logo1.jpg、logo10.jpg、logo11.jpg。。。logo 19.jpg,logo 2.jpg
(代替logo 20.jpg
)
有没有办法按数字顺序输出它们<代码>标识1、标识2、标识3。。等等。加载到一个数组中,如果您像您所说的那样使用
ls
,请使用
ls | sort -n
将完成此操作。您可以将它们放入一个数组中,并使用以下函数对数组进行排序:
$array = array('logo1','logo2','logo12');
natsort($array);
它给出了():
你所寻找的秩序通常被称为自然秩序
或者,您可以在数字前加前缀,例如,如果您已经在使用来命名文件,则标准排序顺序仍然有效:
`logo%03d.jpg`
这将产生
logo001.jpg
对于十进制
1
仅当您使用01而不是1和02而不是2时,此选项才起作用,依此类推。Oterhwise,以上将是顺序。Oldskool,no,01仍将按字母顺序排列。我试过了。但是哈克雷的想法是对的。是的,我只是在你发布它之前3分钟就想出来了。但现在的问题是在PHP中这样做。我想是执行官吧?
logo001.jpg