【发布时间】:2012-06-08 13:17:25
【问题描述】:
我有一个具体的问题。我是 php 新手,所以对我来说还是有点难:)
所以,我有一个函数可以递归地扫描目录并从结果中打印一个特定的数组。 我几乎明白它为什么会发生,但我不知道如何改变它,就像我需要的那样。请帮忙!
目前我正在获取一个数组:
Array
(
[0] => Array
(
[album1] => Array
(
[0] => .
[1] => ..
)
)
[1] => Array
(
[album2] => Array
(
[0] => .
[1] => ..
)
)
[2] => Array
(
[album3] => Array
(
[0] => .
[1] => ..
)
)
)
但我需要得到:
Array
(
[album1] => Array (
[0] => .
[1] => ..
)
[album2] => Array
(
[0] => .
[1] => ..
)
[album3] => Array
(
[0] => .
[1] => ..
)
)
函数本身是:
<?php
function RAgetFiles($main_dir, $result = array()) {
$dirs = scandir($main_dir);
foreach($dirs as $dir) {
if (is_dir("$main_dir/$dir")){
if ($dir === '.' || $dir === '..') {
continue; }
$files=scandir($main_dir."/".$dir);
$result[] = array($dir => $files);
}
}
return $result;
}
$rafiles = RAgetFiles('thumbs');
echo '<pre>';
print_r($rafiles);
echo '<pre>';
?>
【问题讨论】:
-
使用 SPL 目录迭代器可能会更容易 - php.net/manual/en/class.directoryiterator.php
-
试试
$results[$dir] = $files -
@kuh-chan 你应该把它作为答案。
标签: php arrays multidimensional-array scandir