PHP:函数不返回数组[重复]

问题描述 投票:0回答:1

有人可以帮我吗?我看不到。下面的函数不返回数组。

print_r($list)
return
上方)将数组打印在屏幕上。但是
print_r($files)
返回一个空数组....

function listFolderFiles($dir){
    $ffs = scandir($dir);
    $i = 0;
    $list = array();
    foreach ( $ffs as $ff ){
        if ( $ff != '.' && $ff != '..' ){
            if ( strlen($ff)>=5 ) {
                if ( substr($ff, -4) == '.mp4' ) {
                    $value = $dir.'/'.$ff;
                    $list[] = $value;
                }
            }
            if( is_dir($dir.'/'.$ff) )
                    listFolderFiles($dir.'/'.$ff);
        }
    }

    print_r($list);  // Returns the full array with values
    return $list;
}
$files = listFolderFiles($_POST['path']);
print_r($files) // Returns an empty array..... :(:(
php arrays recursion
1个回答
3
投票

您的递归调用不处理返回的数组:

listFolderFiles($dir.'/'.$ff);

您需要在这里合并数组:

$list = array_merge($list, listFolderFiles($dir.'/'.$ff) );
© www.soinside.com 2019 - 2024. All rights reserved.