[英]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.