php – 按数字顺序列出文件而不是按字母顺序排列?

基本上,我有一堆带有共同前缀的文件(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.

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...