Hierarchal Menu in PHP from Array -


alright, it's hump day, , brain's shot.

can tell me i'm doing wrong here, i'm trying build navigation list (hierarchal)

here's array:

array ( [0] => array     (         [contentid] => 1         [parentid] => 0         [linkalias] =>      )  [1] => array     (         [contentid] => 2         [parentid] => 0         [linkalias] => inner     )  [2] => array     (         [contentid] => 3         [parentid] => 2         [linkalias] => inner-2     )  [3] => array     (         [contentid] => 4         [parentid] => 3         [linkalias] => inner-21     )  ) 

and attempts @ recursive function:

    // parse out array displaying multi-level menu     private function parsemenu($menu, $parent = 0){         $ret .= '<ul>';         $ict = count($menu);           for($i=0; $i < $ict; ++$i){             if($menu[$i]['parentid'] == $parent){                                $ret .= '   <li>' . $menu[$i]['linkalias'];                 if($parent > 0){                     $ret .= parsemenu($menu, $menu[$i]['contentid']);                 }                 $ret .= '</li>';                             }         }         $ret .= '</ul>';         return $ret;     } 

right now, returning:

<ul>     <li></li>     <li>inner</li> </ul> 

it should showing

<ul>     <li></li><!-- yes intentional -->     <li>inner             <ul>                     <li>inner-2                             <ul>                                     <li>inner-21</li>                             </ul>                     </li>             </ul> </ul> 

so.. doing wrong, , how can fix it?

make line ...

if($parent > 0){     $ret .= parsemenu($menu, $menu[$i]['contentid']); } 

into ...

$ret .= $this->parsemenu($menu, $menu[$i]['contentid']); 

you never calling function again because starting $parent = 0

$ret .= '</ul>'; if($ret == '<ul></ul>'){      return; } else {     return $ret; } 

Comments

Popular posts from this blog

How to mention the localhost in android -

php - Calling a template part from a post -

c# - String.format() DateTime With Arabic culture -