Ik heb een platte array waar een parent_id in staat, die array zou ik graag willen nesten zodat ik het goed kan weergeven hoe kan ik dat het beste doen?
@MB In eerste instantie is het handig als de items in de goede volgorde staan. Ik weet niet of je deze items ophaalt uit een database of waar deze lijst vandaan komt?
Ten tweede: ik ga er vanuit dat je een soort van structuur hebt met meerdere niveau's zodat dit dus ook resulteert in een geneste bulleted list. Het weergeven hiervan zou je op meerdere manieren kunnen tacklen maar hoe je dit precies doet hangt mede af van hoe het array is opgebouwd. Als deze in de goede volgorde staat voor weergave zou je deze gewoon uit kunnen gaan draaien waarin je bijhoudt op welke "diepte" je zit. Is de parent gelijk aan het vorige element open je een <ul>, is de parent van een hogergelegen niveau dan sluit je deze <ul> weer. Je zou dus een soort van stack bij kunnen houden met parents ofzo.
Een alternatief is dat je bij elk element de "children" bijhoudt naast (of in plaats van) de parent. Je kunt dan namelijk een (recursieve) functie maken die zichzelf aanroept ingeval een element afstammelingen (children) heeft.
Maar zoals gezegd, veel (eigenlijk alles) hangt af van de manier waarop het array is opgebouwd. Hoe ziet deze er op dit moment uit?
En wat je dus eigenlijk aan het doen bent is het weergeven van een boomstructuur.
offtopic: voor debugging kan het dumpen van informatie handig zijn. Echter, deze informatie kan user input bevatten, bijvoorbeeld JavaScript met AJAX-calls. Het zou dus zo kunnen zijn dat jij met admin privileges code aan het debuggen bent die vervolgens data dumpt en daarmee ook uitvoert. Uit veiligheidsoverwegingen is het hier dus (wederom) ZEER belangrijk dat deze output ge-escaped wordt: