よし、こぶの日だ、もう脳みそが撃ち抜かれた。
誰かが私がここで間違っていることを教えてもらえますか?ナビゲーションリストを適切に構築しようとしています(階層型)
配列は次のとおりです。
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
)
)
そして、再帰関数での私の試み:
// Parse out the array for displaying a 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;
}
現在、すべてが返されています:
<ul>
<li></li>
<li>inner</li>
</ul>
表示されているはずです
<ul>
<li></li><!-- yes this is intentional -->
<li>inner
<ul>
<li>inner-2
<ul>
<li>inner-21</li>
</ul>
</li>
</ul>
</ul>
だから..私は何を間違っていますか?どうすれば修正できますか?