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 に答える