rekursiv funktion
Jeg er ved at lave et leksikon til min klasse på vores hjemmeside.Det er idéen at man skal kunne oprette en kategori og så angive hvilken kategori, den oprettede kategori skal være underkategori til.
For at kunne udskrive alle kategorier så de ligger rigtig under hinanden skal jeg bruge en rekursiv funktion.
Data der gemmes er id, navn, superid --> der fortæller hvilket id kategorien hører under.
Nedenstående funktion er designet til en <select> hvor et undermenupunkt rykkes ét mellemrum ( ) ind:
menupunkt1
menupunkt2
undermenupunkt1
osv..
function rekkat($data,$superid){
// $data skal sorteres superid,navn
$level = ?; //hvor mange mellemrum, der skal rykke menupunktet ind
for ($i=0;$i<count($data);$i++){
if ($data[$i][superid] == $superid){
print "<option value=\"$data[$i][id]\">";
for ($j=0;$j<$level;$j++){
print " ";
}
print $data[$i][navn]."</option>\n";
rekkat($data,$i);
}
}
}
funktionen kaldes så første gang med rekkat($data,0) hvor 0 angiver at det er hovedmenupunkterne der skal behandles.
Jeg kan se muligheder for at effektivisere min kode mht. hvor meget af $data man sender videre, men lige nu vil jeg bare holde det simpelt og få det til at virke. Kan ikke lige gennemskue brugen af "level".
Håber I er klar på udfordringen ;-)