我有这个脚本,它将搜索目录并将文件树存储到下面的数组中:
$dir = ABSPATH."/uploads";
function getDirectoryTree( $outerDir , $x){
$dirs = array_diff( scandir( $outerDir ), Array( ".", ".." ) );
$dir_array = Array();
foreach( $dirs as $d ){
if( is_dir($outerDir."/".$d) ){
$dir_array[ $d ] = getDirectoryTree( $outerDir."/".$d , $x);
}else{
if (($x)?ereg($x.'$',$d):1)
$dir_array[ $d ] = $d;
}
}
return $dir_array;
}
$dirlists = getDirectoryTree($dir);
Array
(
[2013] => Array
(
[adamson] => Array
(
[1] => Array
(
[tester.pdf] => tester.pdf
)
[11] => Array
(
[tester.pdf] => tester.pdf
)
)
[danaenus] => Array
(
[1] => Array
(
[tester.pdf] => tester.pdf
)
)
[richardgregson] => Array
(
[9] => Array
(
[tester.pdf] => tester.pdf
)
)
[rik] => Array
(
[1] => Array
(
[tester.pdf] => tester.pdf
)
[2] => Array
(
[tester.pdf] => tester.pdf
)
)
)
[2014] => Array
(
[rik] => Array
(
[1] => Array
(
[tester.pdf] => tester.pdf
)
)
)
)
我想要数组中的所有内容:数据需要像“WEBSITENAME.COM/uploads/2013/rik/1/tester.pdf”
我想循环遍历数组以检索文件的URL ...使用多维数组的新工作因此任何指导都会很棒!
谢谢!
答案 0 :(得分:0)
只需使用var_dump
打印数组像
var_dump($dirlists);
现在您应该看到结构,当您知道结构时,您可以轻松找到一种方法来挖掘您需要的东西
尝试这个
function getDirectoryTree($outerDir, &$filePaths, $x) {
$dirs = array_diff(scandir($outerDir), Array(".", ".."));
$dir_array = Array();
foreach ($dirs as $d) {
if (is_dir($outerDir . "/" . $d)) {
$dir_array[$d] = getDirectoryTree($outerDir . "/" . $d, $filePaths, $x);
} else {
if (($x) ? ereg($x . '$', $d) : 1)
$filePaths[] = $outerDir . "/" . $d;
$dir_array[$d] = $d;
}
}
return $dir_array;
}
$filePaths = array();
$dirlists = getDirectoryTree($dir, $filePaths);
var_dump(filePaths);