我正在开展以下工作,但是对于如何将其输出感到困惑。
我有以下内容扫描目录内容,然后获取信息并将其保存为数组:
//SCAN THE DIRECTORY
$directories = scandir($dir);
$directinfo = array();
foreach($directories as $directory){
if ($directory === '.' or $directory === '..') continue;
if(!stat($dir.'/'.$directory)){
} else {
$filestat = stat($dir.'/'.$directory);
$directinfo[] = array(
'name' => $directory,
'modtime' => $filestat['mtime'],
'size' => $filestat['size']
);
}
}
然而,当尝试输出它时,我只是得到了一些有很多休息的单个字母。我显然在输出循环中遗漏了一些东西。
foreach($directinfo as $dirInfo){
foreach($dirInfo as $drInfo){
for ($x=0; $x<=2; $x++) {
<span>"".$drInfo[$x]."<br/></span>";
}
}
}
非常感谢帮助。 :)
答案 0 :(得分:0)
我认为你处理的是二维数组,但将其视为一个3d数组。
是什么
foreach($directinfo as $dirInfo){
foreach($dirInfo as $drInfo){
var_dump($drInfo);
}
}
给你?
答案 1 :(得分:0)
您正在构建单个数组dirInfo。
Php foreach首先获取数组;
foreach($dirInfo as $info) {
echo "<span>" . $info['name'] . "</span>";
}
答案 2 :(得分:0)
您已完成所有操作,只需删除for loop
。
并尝试执行以下操作 -
foreach($directinfo as $dirInfo){
foreach($dirInfo as $key=>$drInfo){
echo "<span>".$key."=>".$drInfo."<br/></span>";
}
}
答案 3 :(得分:0)
试试这个功能。它将返回带有路径的所有文件的列表。
// to list the directory structure with all sub folders and files
function getFilesList($dir)
{
$result = array();
$root = scandir($dir);
foreach($root as $value) {
if($value === '.' || $value === '..') {
continue;
}
if(is_file("$dir$value")) {
$result[] = "$dir$value";
continue;
}
if(is_dir("$dir$value")) {
$result[] = "$dir$value/";
}
foreach(getFilesList("$dir$value/") as $value)
{
$result[] = $value;
}
}
return $result;
}