glob() — 按名称排序

2022-08-30 21:37:15

如何反转按文件名排序?目前,它以字母/数字顺序显示所有文本文件,但我正试图让它以降序显示。现在,我有...

<?php  
foreach (glob("*.txt") as $filename) {
   include($filename);
}
?>

我对PHP很陌生,但我尝试了usort,添加了数组,但这导致它只显示1个文本文件,所以要么这不起作用,要么我只是编码错误。


答案 1

您可以使用 :array_reverse

foreach(array_reverse(glob("*.txt")) as $filename) { ...

答案 2

只是对@Foo Bah的答案的补充:在处理目录中的文件名时,我通常会添加以防止典型的排序情况:natsort

  • '图像1.png'
  • '图像10.png'
  • '图像2.png'

natsort是一种更加用户友好的排序算法,它将保留自然编号:

  • '图像1.png'
  • '图像2.png'
  • '图像10.png'

所以FooBah的答案变成了:

$list = glob("*.jpg");
natsort($list);
foreach(array_reverse($list) as $filename) { ...

请注意,正在修改传入参数的数组,并且仅返回一个布尔值。natsort


推荐