在php中创建目录数组

时间:2015-09-11 10:41:58

标签: php arrays foreach

您好,我想要实现的目标。我有这个代码来扫描特定目录并存储数组中的所有子目录。但是当我用foreach输出它时,只输出一个值。我的代码:

foreach(glob($directories.'*', GLOB_ONLYDIR) as $sloz) {
$dirname = array (basename($sloz)); }

<?php foreach ($dirname as $slozka) {
    echo <<<dir
$("a[rel='$slozka']").colorbox({maxWidth: "90%", maxHeight: "90%", opacity: ".5"}).;
dir;
} ?>
<?php echo '}'.PHP_EOL ?>

输出始终只是一个带有子目录的行

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

此循环显示不正确:

foreach(glob($directories.'*', GLOB_ONLYDIR) as $sloz) {
    $dirname = array (basename($sloz));
}

我假设您正在尝试构建一系列匹配项。但是在这个循环中,您只是在每种情况下将值赋给变量$dirname

然后你试图迭代一个不可迭代的值,触发一个PHP Warning: Invalid argument supplied for foreach()...,虽然我假设你没有启用警告,因为你没有提到这个。

尝试以下方法:

$dirname = [];

foreach (glob($directories.'*', GLOB_ONLYDIR) as $sloz) {
    $dirname[] = basename($sloz);
}

然后,您可以foreach覆盖$dirname值的数组。