【问题标题】:DirectoryIterator listing in alphabetical order [duplicate]DirectoryIterator 按字母顺序列出 [重复]
【发布时间】:2020-09-30 16:26:13
【问题描述】:

我正在使用DirectoryIterator 按字母顺序列出目录,但在生产环境中,列表不是按字母顺序排列的。我尝试了一些参数,如asort() 等,但没有奏效。有人知道吗?

使用 PHP 7.2.10

的本地主机

使用 PHP 5.2.17 制作(是的,旧版)

代码:

<?php
        $dir = array();
        $dir = new DirectoryIterator("PASTAS/");
        
        @ksort($dir);
        foreach ($dir as $fileinfo) {
            
            if ($fileinfo->isDir() && !$fileinfo->isDot()) {
                echo '<a href="PASTAS/'. $fileinfo->getFilename().'" class="list-group-item">'. $fileinfo->getFilename().'</a>';
            }
        }
        ?>

结果:

【问题讨论】:

    标签: php


    【解决方案1】:

    如你所见,dir 不是一个字符串数组,所以你不能这样排序。 字符串(名称)在 dir[index]->getFileName() 中。

    所以你应该做以下步骤:

    1. 创建一个 $DirNames 数组

    2. 排序这个数组

    3. 显示这个数组

       $dir = array();
       $dir = new DirectoryIterator("PASTAS/");
      
       $DirNames = array();
       foreach ($dir as $fileinfo) 
           if ($fileinfo->isDir() && !$fileinfo->isDot())
               $DirNames[] = $fileinfo->getFilename();
      
       sort($DirNames);
      
       foreach($DirNames as $name)
           echo '<a href="PASTAS/'. $name .'" class="list-group-item">'. $name.'</a>';
      

    【讨论】:

      猜你喜欢
      • 2017-12-19
      • 2011-05-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-07
      • 1970-01-01
      • 2019-12-16
      • 1970-01-01
      相关资源
      最近更新 更多