glob() - 按名称排序

Fro*_*ime 14 php sorting foreach reverse glob

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

<?php  
foreach (glob("*.txt") as $filename) {
   include($filename);
}
?>
Run Code Online (Sandbox Code Playgroud)

我是PHP的新手,但是我尝试使用添加的数组,但只是导致它只显示了一个文本文件,所以要么不起作用,要么我编写错了.

Foo*_*Bah 28

你可以使用array_reverse:

foreach(array_reverse(glob("*.txt")) as $filename) { ...
Run Code Online (Sandbox Code Playgroud)


Gab*_*enn 10

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

  • 'image1.png'
  • 'image10.png'
  • 'image2.png'

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

  • 'image1.png'
  • 'image2.png'
  • 'image10.png'

所以 FooBah 的答案变成了:

$list = glob("*.jpg");
natsort($list);
foreach(array_reverse($list) as $filename) { ...
Run Code Online (Sandbox Code Playgroud)

请注意,这natsort是修改传入参数的数组,并且只返回一个布尔值。