Php 目录迭代器按字母顺序列出

Php 目录迭代器按字母顺序列出,php,Php,我使用directoryinterator按字母顺序列出目录,但在生产环境中,列表不是按字母顺序排列的。我尝试了一些参数,比如asort(),但没有成功。有人知道吗 使用PHP 7.2.10的本地主机 使用PHP 5.2.17制作(是,传统) 代码: 结果: 如您所见,dir不是字符串数组,因此您无法按此方式对其排序。 字符串(名称)位于dir[index]->getFileName()中 因此,您应该执行以下步骤: 制作一个$DirNames数组 对该数组进行排序 $dir = arr

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

使用PHP 7.2.10的本地主机

使用PHP 5.2.17制作(是,传统)

代码:


结果:


如您所见,dir不是字符串数组,因此您无法按此方式对其排序。 字符串(名称)位于dir[index]->getFileName()

因此,您应该执行以下步骤:

  • 制作一个$DirNames数组

  • 对该数组进行排序

     $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>';
    
  • 显示此阵列

     $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>';
    
    $dir=array();
    $dir=新的DirectoryIterator(“PASTAS/”);
    $DirNames=array();
    foreach($dir作为$fileinfo)
    如果($fileinfo->isDir()&&!$fileinfo->isDot())
    $DirNames[]=$fileinfo->getFilename();
    排序(名称);
    foreach($DirNames作为$name)
    回声';