duan1396 2014-04-13 17:49
浏览 25
已采纳

readdir组文件夹的第一个字母

I have a list of folders but want to group them by first letter ie all A folders together, all B folder together etc:

$handle = opendir(".");
$projectContents = '';
while ($file = readdir($handle)) 
{
    if (is_dir($file) && !in_array($file,$projectsListIgnore)) 
    {

$projectContents .= '<li><a href="'.$file.'">'.$file.'</a></li>';

    }
}
closedir($handle);

Output:

<ul>
 $projectContents
</ul>

The above snippet lists them fine from a-2-z but I don't know how to section them off into groups.

The closing and re-opening of </ul><ul> with each new letter section would be enough but again don't kow how to impliment into the current snippet.

  • 写回答

2条回答 默认 最新

  • douzhong1907 2014-04-13 18:05
    关注

    Compare the first character of the current file name in the loop with the first character of the previous one, then print the </ul><ul> if they're not the same:

    $handle = opendir(".");
    $projectContents = '';
    $firstLetter = '';
    while ($file = readdir($handle)) 
    {
        if (is_dir($file) && !in_array($file,$projectsListIgnore)) 
        {
            if ($firstLetter != strtoupper($file{0}) && $firstLetter != '')
            {
                $projectContents .= '</ul><ul>';
            }
            $firstLetter = strtoupper($file{0}); // Store the current character for comparison
            $projectContents .= '<li><a href="'.$file.'">'.$file.'</a></li>';
    
        }
    }
    closedir($handle);
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 BP神经网络控制倒立摆
  • ¥20 要这个数学建模编程的代码 并且能完整允许出来结果 完整的过程和数据的结果
  • ¥15 html5+css和javascript有人可以帮吗?图片要怎么插入代码里面啊
  • ¥30 Unity接入微信SDK 无法开启摄像头
  • ¥20 有偿 写代码 要用特定的软件anaconda 里的jvpyter 用python3写
  • ¥20 cad图纸,chx-3六轴码垛机器人
  • ¥15 移动摄像头专网需要解vlan
  • ¥20 access多表提取相同字段数据并合并
  • ¥20 基于MSP430f5529的MPU6050驱动,求出欧拉角
  • ¥20 Java-Oj-桌布的计算