繁体   English   中英

PHP foreach 目录数组得到错误注意:第 45 行的数组到字符串转换

[英]PHP foreach array of directories get error Notice: Array to string conversion on line 45

下面是一个查找子目录并将它们存储在数组中的脚本。 当我使用 foreach 遍历目录时,我得到并错误地将数组转换为字符串。 我已经使用 gettype 设置了 foreach 变量,并显示为一个字符串。

            $dir = '/Video/Movies';     //base directory for search
            $ar_dirlist[] = [];         // array to store directory list
            //Function to walk directories and store subdirectories in an array
            function listFolderFiles($dir){
                global $ar_dirlist;
                $ffs = scandir($dir);
                // $ffs = sortbydir($dir, $ffs);
                unset($ffs[array_search('.', $ffs, true)]);
                unset($ffs[array_search('..', $ffs, true)]);
                // prevent empty ordered elements
                if (count($ffs) < 1)
                {
                    echo '<br />';
                    return;
                }
                //parse scandir output in array $ffs
                foreach($ffs as $ff){
                    $phpfile = $dir . '/' . $ff;
                    if(is_dir($phpfile))
                    {
                        $ar_dirlist[] = $phpfile;
                        listFolderFiles($phpfile); //if directory recurse

                    }

                }
            }
            listFolderFiles($dir);
            foreach ($ar_dirlist as $tmpdir) {
                echo '<h3>' . $tmpdir . '</h3>';   // This is line with error
                //echo '<br />';
            }

我解决了这个问题,这是我初始化数组的方式。 我应该使用 null,而不是 [];

我认为您在初始化$ar_dirlist数组时可能是错误的。 它应该是:

$ar_dirlist = [];

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM