在php中创建目录数组

在php中创建目录数组,php,arrays,foreach,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

你好,这是我想要达到的目标。我有这个代码来扫描特定的目录,并在数组中存储所有子目录。但当我用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 ?>
foreach(glob($directories.*',glob_ONLYDIR)作为$sloz){
$dirname=array(basename($sloz));}

此循环似乎不正确:

foreach(glob($directories.'*', GLOB_ONLYDIR) as $sloz) {
    $dirname = array (basename($sloz));
}
我假设您正在尝试构建一个匹配数组。但是在这个循环中,您只是在每种情况下将值赋给变量
$dirname

然后,您试图迭代一个不可iterable的值,这会触发一个
PHP警告:为foreach()提供的参数无效……
,尽管我假设您没有启用警告,因为您没有提到这一点

请尝试以下操作:

$dirname = [];

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

然后,您可以对
$dirname
值数组进行
foreach

每次迭代时,您都在重新分配
$dirname
。你需要使用
$dirname[]
来代替。哦,是的,当我移除之前的“数组”(basename($sloz))时,它就起作用了。我只是PHP新手,非常感谢!!:)没问题@Houdasek-很乐意帮忙:)