如何按文件名撤消排序?目前它按字母/数字顺序显示所有文本文件,但我试图让它以降序显示。现在,我有......
<?php
foreach (glob("*.txt") as $filename) {
include($filename);
}
?>
我对PHP很陌生,但我尝试使用添加的数组,但只是导致它只显示了一个文本文件,所以要么不起作用,要么我编写错了。
答案 0 :(得分:28)
您可以使用array_reverse
:
foreach(array_reverse(glob("*.txt")) as $filename) { ...
答案 1 :(得分:2)
答案 2 :(得分:2)
由于glob()
函数将文件名排序为默认行为,因此您可以以相反的顺序循环遍历生成的数组,从而避免任何其他处理:
<?php
for($result = glob("*.txt"), $i = count($result); $i > 0; --$i) {
include($result[$i-1]);
}
?>
答案 3 :(得分:0)
除了@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) { ...
请注意,natsort
正在修改传入参数的数组,并且仅返回布尔值。