0

我有一个具体的问题。我是 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>';
?>
4

1 回答 1

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>';
?>

完美运行。

于 2012-06-08T13:39:47.820 回答