Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP Scandir不自动按字母顺序排列?_Php_Sorting_Scandir - Fatal编程技术网

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

PHP Scandir不自动按字母顺序排列?,php,sorting,scandir,Php,Sorting,Scandir,蒂亚。凭借我的PHP补救技能,我无法理解为什么scandir不会自动按字母顺序排序。(将文件夹分组并按字母顺序排序也很好,文件分组并按字母顺序排序也很好,但这并不重要。)我缺少什么 <?php $dir = './customers/' . $customer . "/"; $exclude = array(".","..",".htaccess"); if (is_dir($dir)) { $files = scandir($dir); forea

蒂亚。凭借我的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所说,您必须通过以下方式使用:

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

修订:当所有文件名的第一个字母都是小写时(或者,我假设,当所有文件名的第一个字母都是大写时),目录的字母顺序正确。是否有办法将它们按字母顺序排列,以便文件名的第一个字母可以不区分大小写?使用natcasesort解决:希望这对某人有所帮助。如果你有答案,你应该将其作为答案(而不是评论)发布,并将其标记为已接受。