首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >php中的列表数组

php中的列表数组
EN

Stack Overflow用户
提问于 2010-12-18 02:25:33
回答 3查看 2.9K关注 0票数 1

我想从一个目录中读取所有文件,并将它们存储在一个列表数组中。数组中的键是文件名的起始字母,列表中包含以该字母开头的所有名称。

示例:密钥'a‘可以包含a1、a2、a3、a4密钥'b’可以包含boat.txt、boast.txt、beast.txt

我已经准备好了文件扫描代码,但是对于如何在PHP中使用数组中的列表感到困惑。你能帮上忙吗?

谢谢!

EN

回答 3

Stack Overflow用户

发布于 2010-12-18 02:28:19

代码语言:javascript
复制
 $first_char = substr($filename, 0, 1); // 'hello.doc' -> 'h'
 $files[$first_char][] = $filename; // add $filename to the $files array under the 'h' key.
票数 2
EN

Stack Overflow用户

发布于 2010-12-18 02:36:50

您需要遍历由read函数返回的列表。如果它是一个数组,你可以像这样迭代(否则,将你的字符串结果分解成一个数组并遍历)。您可以使用数组排序来按字母顺序排列数组。

代码语言:javascript
复制
<?php

$somelist = array("awesomeness", "stupidness", "funniness", "alotness", "lolz0rz", "sorryness");
$newlist = array();

foreach($somelist as $val)
{
    $newlist[substr($val,0,1)][] = $val;
}

print "<pre>";
print_r($newlist);
print "</pre>";

?>
票数 2
EN

Stack Overflow用户

发布于 2010-12-18 03:29:07

感谢所有帮助php新手的人:-)

这是我最终得到的结论:

代码语言:javascript
复制
$dirname = "./filesdir/";
$dh = opendir( $dirname ) or die("Couldn't open directory [".$dirname."]");
$arr = array();
while ( ! ( ( $file = readdir( $dh ) ) === false) ) 
{
    if( $file != "." && $file != ".." )
    {
        if ( !is_dir("$dirname/$file" ) && substr_count($file, '.') == 1 )
        {
            $ext = strstr($file, '.', true);
            $key = substr($ext,0,1);

            if( $key < 'a' || $key > 'z' )
            {
                $key="other";
            }
            $arr[$key][] = $ext;
        }
    }
}
closedir( $dh );
print_r($arr);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4473611

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档