Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 以数字顺序而不是字母顺序列出文件?_Php_Linux_Unix_Ffmpeg - Fatal编程技术网

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