Er igang med at opbygge et menu system mest for at udfordre mig selv lidt med relationer. har lige nu opbygget et system hvor jeg gemmer menu punkter i en database med følgene information
id, parent_id, name, content
Meget simpelt har alle menu punkter et id selv. og et parent_id der henviser til det menupunkt der ligger over dem i hierakiet. og mine øverste punkter henviser til 0 som parent_id
dvs
1, 0, "Home", "noget content"
2, 0, "Artikler", "noget content"
3, 2, "Artikel 1", "noget content"
4, 2, "Artikel 2", "noget content"
5, 1, "Underpunkt", "noget content"
Ville se ca. sådan her ud i en menu:
Home
- Underpunkt
Artikler
- Artikel 1
- Artikel 2
Nu da i muligvis har set hvordan jeg har bygget dette op kommer jeg til php-delen som volder mig en smule besvær.
Har et simpelt array der bare beskriver de enkelte forhold mellem child og dens parent, hvor $array[id] == parent_id
array (
1 => 0
2 => 0
3 => 2
4 => 2
5 => 1
)
Hvad jeg så ønsker og prøver at udvikle er en metode/funktion der laver det ovenstående array om til noget der minder mere om nedenstående
array (
1 => array(5)
2 => array(3,4)
}
havde jeg haft flere underpunkter fx et underpunkt til id 3 der havde id'et 6 havde det fx. set sådan her ud:
array (
1 => array(5)
2 => array(3 => array(6),4)
}
Home
- Underpunkt
Artikler
- Artikel 1
-- Underpunkt til id 3
- Artikel 2
Håber i forstår hvad jeg prøver at opnå her, en funktion hvor jeg kan spytte det 1-dimelsionalle array ind
array (
1 => 0
2 => 0
3 => 2
4 => 2
5 => 1
)
og få et flere dimensionelt array ud.
array (
1 => array(5)
2 => array(3,4)
}
mit eksempel er lidt crude. men det skal virke om så man har et meget stort array ind med mange childnodes og mange underpunkter underhinanden.
Hvis i har en stump kode der kan gøre dette så ville jeg blive ovenud henrykt. har udlovet 200 point til den der kan klare det for mig. gav gerne 500 for det
men der er restriktioner.