我希望数组的值只作为文件名,只能在文件夹子文件夹中递归显示。它不得包含子文件夹或子子文件夹的名称。 请注意我不想只打印文件的名称,而是在执行完成时我想要累积结果。 我试过Link 还有许多其他解决方案没有运气(使用array_merge来保留Previous值)
答案 0 :(得分:0)
我同意之前已经回答了,但每隔一段时间玩递归就很有趣,所以在这里你去...
<?php
function listFolderFiles($dir=null)
{
$rtn = array();
if (is_dir($dir)) {
#echo '<ol>';
foreach (new DirectoryIterator($dir) as $fileInfo) {
if (!$fileInfo->isDot()) {
#echo '<li>' . $fileInfo->getFilename();
if ($fileInfo->isDir()) {
echo 'directory';
$rtn = array_merge($rtn, listFolderFiles($fileInfo->getPathname()));
} else {
echo 'file';
$rtn[] = $fileInfo->getFilename();
}
#echo '</li>';
}
}
#echo '</ol>';
} else {
echo "No such directory '$dir'";
}
return $rtn;
}
$result = listFolderFiles('\tmp');
echo "result=<pre>".print_r($result,true)."</pre><br />\n";
#print_r(array_unique($result));