Php glob()—;按名称排序
如何按文件名反转排序?目前,它以字母/数字顺序显示所有文本文件,但我尝试以降序显示。现在,我有Php glob()—;按名称排序,php,sorting,foreach,reverse,glob,Php,Sorting,Foreach,Reverse,Glob,如何按文件名反转排序?目前,它以字母/数字顺序显示所有文本文件,但我尝试以降序显示。现在,我有 <?php foreach (glob("*.txt") as $filename) { include($filename); } ?> 我对PHP非常陌生,但我尝试了usort并添加了数组,但这只会导致它只显示1个文本文件,因此要么不起作用,要么我只是编码错误。您可以使用array\u reverse: foreach(array_reverse(glob("*.txt
<?php
foreach (glob("*.txt") as $filename) {
include($filename);
}
?>
我对PHP非常陌生,但我尝试了usort并添加了数组,但这只会导致它只显示1个文本文件,因此要么不起作用,要么我只是编码错误。您可以使用
array\u reverse
:
foreach(array_reverse(glob("*.txt")) as $filename) { ...
使用
usort()
的方法是
usort($files, function($a, $b) {
return strcmp($b, $a);
});
<?php
for($result = glob("*.txt"), $i = count($result); $i > 0; --$i) {
include($result[$i-1]);
}
?>
只是@Foo-Bah答案的补充: 在处理目录中的文件名时,我通常添加
natsort
,以防止出现典型的排序情况:
- “image1.png”
- 'image10.png'
- “image2.png”
- “image1.png”
- “image2.png”
- 'image10.png'
$list = glob("*.jpg");
natsort($list);
foreach(array_reverse($list) as $filename) { ...
请注意,
natsort
正在修改传入参数的数组,并且只返回布尔值。反向排序函数将是rsort()
但必须是一个带有临时数组变量的独立语句。我遇到了一些字母排序问题,但根本问题是小写字母的ascii值高于大写字母。像myphoto1.jpg这样的文件名在myPhoto2.jpg之后返回,因为大写字母P。