【问题标题】:PHP - Sorting directory alphabetically on drop down listPHP - 在下拉列表中按字母顺序对目录进行排序
【发布时间】:2012-12-11 20:52:36
【问题描述】:

如何对目录进行排序以按字母顺序显示下拉列表?

<select name=country>
<?php
$handle=opendir("images/flags");
while (false!==($file = readdir($handle))) { 
  if ($file != "." && $file != "..") { 
    $country = substr($file,0,strpos($file,'.'));
    echo "<option value=\"".$file."\"><center>".$country."</center></option>\n";
  } 
}
closedir($handle);
?>
</select>

【问题讨论】:

    标签: php sorting directory


    【解决方案1】:

    使用

    array scandir ( string $directory [, int $sorting_order = SCANDIR_SORT_ASCENDING [, resource $context ]] )
    

    默认情况下,排序顺序是按字母升序排列的。如果 可选的排序顺序设置为 SCANDIR_SORT_DESCENDING,然后 排序顺序是按字母降序排列的。如果设置为 SCANDIR_SORT_NONE 则结果未排序。

    更多阅读scandir

    另一种解决方案:

    <?php
    $dir = "images/flags";
    $dh  = opendir($dir);
    while (false !== ($filename = readdir($dh))) {
        $files[] = $filename;
    }
    
    sort($files);
    
    print_r($files);
    
    rsort($files);
    
    print_r($files);
    
    ?>
    

    【讨论】:

      【解决方案2】:

      你可以简单地使用:

      $ao = new ArrayObject(iterator_to_array(new FilesystemIterator(__DIR__ ."/test", FilesystemIterator::SKIP_DOTS)));
      $ao->natsort(); //sort directory 
      foreach ( $ao as $file ) {
          echo $file->getPathname() . PHP_EOL; 
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-08-31
        • 1970-01-01
        • 2022-01-18
        • 1970-01-01
        • 2013-05-02
        • 2014-02-08
        • 2023-04-01
        • 2017-01-25
        相关资源
        最近更新 更多