如何仅列出指定目录的子目录?

时间:2014-03-27 22:33:01

标签: php

请在php中如何在不显示父目录的情况下获取指定目录中的子目录列表?我已经有这样的事情:

$subdirs = array_filter(glob('mydir/*'), 'is_dir');
foreach($subdirs as $s){
 echo $s.'<br>';
}

这就是我的样本输出: MYDIR /账户, MYDIR /支付

我只想要这个作为输出: 账户, 付款

请问,我该怎么做?

3 个答案:

答案 0 :(得分:4)

怎么样:

$subdirs = array_map('basename', glob('mydir/*', GLOB_ONLYDIR));

或者,如果您稍后需要使用$subdirs并保留完整路径:

$subdirs = glob('mydir/*', GLOB_ONLYDIR);
foreach(array_map('basename', $subdirs) as $s) {

答案 1 :(得分:1)

您可以使用basename()返回最后一个文件夹(摘录mydir)。

$subdirs = array_filter(glob('mydir/*'), 'is_dir');
foreach($subdirs as $s){
    echo basename($s) . '<br>';
}

注意:这对多个子目录无效,您最好使用mydir/剥离str_replace()部分:

$subdirs = array_filter(glob('mydir/*'), 'is_dir');
foreach($subdirs as $s){
    echo str_replace('mydir/', '', $s) . '<br>';
}

答案 2 :(得分:0)

basename()就是我的工作。

$subdirs = array_filter(glob('mydir/*'), 'is_dir');
foreach($subdirs as $s){
 echo basename($s) . '<br>';
}

这对我也很有用:

foreach($subdirs as $s){
 echo str_replace("mydir/", "", $s).'<br>';
}