php - PHP foreach 目录数组报错注意:第 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 />';
}
解决方案
$ar_dirlist
我认为您在初始化数组时可能是错误的。它应该是:
$ar_dirlist = [];
推荐阅读
- python - Django Password_reset 电子邮件设置
- npm - 我可以在我的 Grunt 项目中使用 npm 模块吗?
- c++ - 使用 getline 时未处理的异常
- ruby-on-rails - 保存前回调:SystemStackError:堆栈级别太深
- c++ - 插入到双链表中的特定位置
- c# - 是否可以使用 foreach 在 IEnumerable 中创建新对象?
- python - 根据 Python 中的时间间隔自动填充一列
- python - 单击使用 selenium webdriver 的链接
- javascript - 使用js回调函数更新json文件内容
- python - 在 Sphinx 中创建文字文本块