Hvorfor?
Men du kan jo hurtigt lave to loops på det. Det første henter du alle hovedpunkter fra din database og udskriver disse. Når et af hovedpunkterne er aktivt, eller et child heraf er aktivt, henter du alle childnodes der tilhører dit hovedpunkt.
Dog forstår jeg ikke hvorfor du fokusere på hvordan punkterne renderes da din problematik relaterer ln. 15 + ln. 16 i koden der henvises til:
- <?php
- // SQL result
- $menuitems = array(
- array('id' => 1, 'parent_id' => 0, 'title' => 'Menu 1'),
- array('id' => 2, 'parent_id' => 0, 'title' => 'Menu 2'),
- array('id' => 3, 'parent_id' => 1, 'title' => 'Menu 3 (Parent 1)'),
- array('id' => 4, 'parent_id' => 6, 'title' => 'Menu 4 (parent 6)'),
- array('id' => 5, 'parent_id' => 3, 'title' => 'Menu 5 (Parent 3)'),
- array('id' => 6, 'parent_id' => 3, 'title' => 'Menu 6 (Parent 3)')
- );
-
- // PHP sorting
- $tmp = array(0 => array('title' => 'root', 'children'=>array()));
- foreach($menuitems as $item) {
- $tmp[$item['id']] = isset($tmp[$item['id']]) ? array_merge($tmp[$item['id']],$item) : $item;
- $tmp[$item['parent_id']]['children'][] =& $tmp[$item['id']];
- }
Resultat af print_r($tmp[3]);
- array(
- array('id' => 5, 'parent_id' => 3, 'title' => 'Menu 5 (Parent 3)'),
- array('id' => 6, 'parent_id' => 3, 'title' => 'Menu 6 (Parent 3)')
- )
Indlæg senest redigeret d. 16.10.2012 22:20 af Bruger #10216