PHP Scandir 不是按字母顺序自动排列的?

标签 php sorting scandir

TIA。凭借我的 PHP 补救技能,我无法弄清楚为什么 scandir 不能按字母顺序自动排序。 (将文件夹组合在一起并按字母顺序排序以及将文件组合在一起并按字母顺序排序也很好,但这并不重要。)我错过了什么?

<?php
$dir = './customers/' . $customer . "/";
$exclude = array(".","..",".htaccess");
    if (is_dir($dir)) {
        $files = scandir($dir);
        foreach($files as $key=>$dir){
            if(!in_array($dir, $exclude)){
    echo ("<a href=\"./customers/$customer/".$dir."\">".$dir."</a><br>");
        }
    }
}
?>

最佳答案

正如WGD所说,你必须使用natcasesort通过以下方式:

$files = scandir($dir);
natcasesort($files);
foreach ($files as $file) {
    // your code
}

关于PHP Scandir 不是按字母顺序自动排列的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16627471/

相关文章:

php - 散列和加盐 - 使用/cookie 验证登录

PHP 长轮询 - "long"应该有多长?

java - 尝试为给定字段上的给定类创建比较器时出错

php - Linux 中的 scandir 重音问题在 OSX 中工作正常

php - 使用 PHP 'scandir' 时 "."(点)来自哪里

php - MYSQL查询不是我要找的结果

php - 在 PHP 中,你可以在同一行实例化一个对象并调用一个方法吗?

JavaScript 按星期几对数组数组进行排序

python - 如何从对角线全为零的列表中从左到右填充二维数组

PHP:使用 scandir(),文件夹被视为文件