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 读取子目录中的图像并按字母顺序排序?_Php_Sorting_Readdir - Fatal编程技术网

Php 读取子目录中的图像并按字母顺序排序?

Php 读取子目录中的图像并按字母顺序排序?,php,sorting,readdir,Php,Sorting,Readdir,我发现这段代码()用于显示目录和子目录中的所有图像,工作正常,但我试图实现php的sort()函数,但不起作用: function ListFiles($dir) { if($dh = opendir($dir)) { $files = Array(); $inner_files = Array(); while($file = readdir($dh)) { if($

我发现这段代码()用于显示目录和子目录中的所有图像,工作正常,但我试图实现php的sort()函数,但不起作用:

    function ListFiles($dir) {
        if($dh = opendir($dir)) {
            $files = Array();
            $inner_files = Array();
            while($file = readdir($dh)) {
                if($file != "." && $file != ".." && $file[0] != '.') {
                    if(is_dir($dir . "/" . $file)) {
                        $inner_files = ListFiles($dir . "/" . $file);
                        if(is_array($inner_files)) $files = array_merge($files, $inner_files); 
                    } else {
                        array_push($files, $dir . "/" . $file);
                    }
                }
            }
            closedir($dh);

            // -- SORTING the FILES --
            sort($files);

            return $files;
        }
    }

    foreach (ListFiles('works/'.$service_get_var.'/') as $key=>$file){
        echo "<li><img src=\"$file\"/></li>";
    }
函数列表文件($dir){
如果($dh=opendir($dir)){
$files=Array();
$internal_files=Array();
而($file=readdir($dh)){
如果($file!=“&&&$file!=”。“&&&&$file[0]!=”){
if(is_dir($dir./“$file)){
$internal_files=ListFiles($dir./“$file);
如果(is_array($inner_files))$files=array_merge($files,$inner_files);
}否则{
数组_push($files,$dir./“$file);
}
}
}
closedir($dh);
//--整理文件--
排序($文件);
返回$files;
}
}
foreach(ListFiles('works/'.$service\u get\u var.'/')作为$key=>$file){
回声“
  • ”; }

    当我测试这个时,我看不到任何图像,sort()的用法是否正确?。非常感谢。

    在阅读完所有内容后进行排序,而不是以递归步骤进行排序

    function ListFiles($dir) {
            if($dh = opendir($dir)) {
                $files = Array();
                $inner_files = Array();
                while($file = readdir($dh)) {
                    if($file != "." && $file != ".." && $file[0] != '.') {
                        if(is_dir($dir . "/" . $file)) {
                            $inner_files = ListFiles($dir . "/" . $file);
                            if(is_array($inner_files)) $files = array_merge($files, $inner_files); 
                        } else {
                            array_push($files, $dir . "/" . $file);
                        }
                    }
                }
                closedir($dh);
    
                // -- SORTING the FILES --
                //sort($files);
    
                return $files;
            }
        }
    
        $list = ListFiles('works/'.$service_get_var.'/');
        sort($list);
        foreach ($list as $key=>$file){
            echo "<li><img src=\"$file\"/></li>";
        }
    
    函数列表文件($dir){
    如果($dh=opendir($dir)){
    $files=Array();
    $internal_files=Array();
    而($file=readdir($dh)){
    如果($file!=“&&&$file!=”。“&&&&$file[0]!=”){
    if(is_dir($dir./“$file)){
    $internal_files=ListFiles($dir./“$file);
    如果(is_array($inner_files))$files=array_merge($files,$inner_files);
    }否则{
    数组_push($files,$dir./“$file);
    }
    }
    }
    closedir($dh);
    //--整理文件--
    //排序($文件);
    返回$files;
    }
    }
    $list=ListFiles('works/.$service\u get\u var./');
    排序($列表);
    foreach($key=>$file){
    回声“
  • ”; }