Multidimensionlet array og foreach
I PHP 5 har jeg følgende kode, som skal gennemgå en mappe med en masse under- og underundermapper (for at lave en treemenu):<?php
$dirs = dirlist('.');
maketree($dirs);
function dirlist($dir)
{
foreach(scandir($dir) as $entry)
{
if($entry != '.' && $entry != '..')
{
$entry = $dir.'/'.$entry;
if(is_dir($entry))
{
$path = pathinfo($entry);
$listarray[$path['basename']] = dirlist($entry);
}
}
return($listarray);
}
}
function maketree(&$dir)
{
foreach($dir as $treedir => &$treename)
{
echo '<div><a href="#">'.$treename.'</a>';
if(count($treedir)>0)
{
if(is_array($treedir))
{
maketree($treedir);
}
}
echo '</div>';
}
}
?>
dirlist-funktionen fungerer, men det gør maketree ikke. Meningen er, at mapperne skal komme i rækkefølge, og med undermapper placeret under deres overmapper.
Problemet er, at output hele tiden er "Array", og kun for de mapper i roden, som har undermapper. Underundermapperne kommer ikke med.
Da jeg nu har rodet med det her i mange timer, ville det være fedt, om nogen lige kunne brygge den rigtige kode sammen :P Derfor de mange points for noget, som sikkert er nemt for en, der er mere ferm til PHP.
