PHP:函数不返回Array

时间:2014-10-20 07:04:57

标签: php

有人可以帮帮我吗?我看不到。以下函数不返回数组。 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..... :(:(

1 个答案:

答案 0 :(得分:3)

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

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

你需要在这里合并数组:

$list = array_merge($list, listFolderFiles($dir.'/'.$ff) );