Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/236.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

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_Dir - Fatal编程技术网

如何使用php按字母顺序排列文件夹目录

如何使用php按字母顺序排列文件夹目录,php,sorting,dir,Php,Sorting,Dir,如何使用php按字母顺序排列文件夹目录 请帮我解决这个问题,这不是[重复]帖子谢谢 这个代码是这样显示的 (按时间排序) 狗 猫 橙色的 苹果 玩偶 鱼 飞机 香蕉 象 我想要这样 ABC 飞机 苹果 苹果 香蕉 猫 DEF 狗 玩偶 象 鱼 php代码 <?php function folderlist(){ $startdir = './'; $ignoredDirectory[] = '.'; $ignoredDirector

如何使用php按字母顺序排列文件夹目录 请帮我解决这个问题,这不是[重复]帖子谢谢

这个代码是这样显示的 (按时间排序)

  • 橙色的
  • 苹果
  • 玩偶
  • 飞机
  • 香蕉
我想要这样

ABC

  • 飞机
  • 苹果
  • 苹果
  • 香蕉
DEF

  • 玩偶
php代码

<?php
    function folderlist(){
      $startdir = './';
      $ignoredDirectory[] = '.'; 
      $ignoredDirectory[] = '..';
       if (is_dir($startdir)){
           if ($dh = opendir($startdir)){
               while (($folder = readdir($dh)) !== false){
                   if (!(array_search($folder,$ignoredDirectory) > -1)){
                     if (filetype($startdir . $folder) == "dir"){
                           $directorylist[$startdir . $folder]['name'] = $folder;
                           $directorylist[$startdir . $folder]['path'] = $startdir;
                       }
                   }
               }
               closedir($dh);
           }
       }
    return($directorylist);
    }


    $folders = folderlist();
    sort($folders);
        foreach ($folders as $folder){
        $path = $folder['path'];
        $name = $folder['name'];




    echo '<div class="menu">
    <h3 class="headerbar"><a href="' .$path .'index2.php?folder=' .$name . '" class="style1"><span class="headertit">' .$name . '</span></a></div>';
      }
    ?>

将对
排序的调用替换为以下内容:

usort($folders, function ($a, $b) {
    return strnatcmp($a['name'], $b['name']);
}); 

此外,您可能希望通过使用或来降低代码复杂性。您应该尝试使用scandir()。默认情况下,scandir()将按字母顺序对文件进行排序:

$dir    = './';
$files1 = scandir($dir);

print_r($files1);

它有点重复;)如果不知道您的错误消息,没有人可以帮助您。发布的代码应该有效。例子:你删除了很多。你的代码目前的状态永远不会调用你的函数。过去在调用
sort
上方的行应该保留下来。添加
$folders=folderlist()返回到调用
usort
之前。我再次更改代码并检查localhost上是否显示此错误解析错误:语法错误,第24行/in/qsazz中出现意外的T_函数,我还检查了我的网站上是否显示了简单列表,以及我的网站上是否显示了带有简单列表警告的错误:sort()第26行的/home/user/public_html/dir.php中给出的参数2应该是长的对象。如果您得到了意外的T_函数,那么您要么在复制代码时出错,要么在本地主机上使用(非常)过时的php版本。对于第二个错误:为什么调用sort?如果要使用发布的代码,需要使用
usort