【问题标题】:scandir recursivly with php用php递归scandir
【发布时间】:2012-06-08 13:17:25
【问题描述】:

我有一个具体的问题。我是 php 新手,所以对我来说还是有点难:)

所以,我有一个函数可以递归地扫描目录并从结果中打印一个特定的数组。 我几乎明白它为什么会发生,但我不知道如何改变它,就像我需要的那样。请帮忙!

目前我正在获取一个数组:

Array
(
    [0] => Array
        (
            [album1] => Array
                (
                    [0] => .
                    [1] => ..
                )
        )
    [1] => Array
        (
            [album2] => Array
                (
                    [0] => .
                    [1] => ..
                )
        )
    [2] => Array
        (
            [album3] => Array
                (
                    [0] => .
                    [1] => ..
                )
        )
)

但我需要得到:

Array
    (
     [album1] => Array (
                        [0] => .
                        [1] => ..
                    )
     [album2] => Array
                    (
                        [0] => .
                        [1] => ..
                    )
     [album3] => Array
                    (
                        [0] => .
                        [1] => ..
                    )
    )

函数本身是:

 <?php

    function RAgetFiles($main_dir, $result = array()) {

        $dirs = scandir($main_dir); 
            foreach($dirs as $dir)  {
                if (is_dir("$main_dir/$dir")){

                    if ($dir === '.' || $dir === '..') { 
                        continue; }
                    $files=scandir($main_dir."/".$dir);
                    $result[] = array($dir => $files);
                }
        }
        return $result;
    }

    $rafiles = RAgetFiles('thumbs');
    echo '<pre>';
    print_r($rafiles);
    echo '<pre>';
?>

【问题讨论】:

标签: php arrays multidimensional-array scandir


【解决方案1】:
<?php
    function RAgetFiles($main_dir, $result = array()) {
        $dirs = scandir($main_dir); 
            foreach($dirs as $dir)  {
                if (is_dir("$main_dir/$dir")){
                    if ($dir === '.' || $dir === '..') { 
                        continue; }
                    $files=scandir($main_dir."/".$dir);
                    $result[$dir] = $files;
                }
        }
        return $result;
    }
$rafiles = RAgetFiles('/usr');
    echo '<pre>';
    print_r($rafiles);
    echo '</pre>';
?>

完美运行。

【讨论】:

  • 是的,tnx!完美运行 =)
  • 确实如此 =) 如果不是一整晚的话,我可以节省几个小时 =)
猜你喜欢
  • 2016-03-15
  • 1970-01-01
  • 2011-10-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-15
相关资源
最近更新 更多