在php中使用ul,li格式的树结构

时间:2013-02-25 07:11:32

标签: php html

在php中使用ul,li的树结构代码...... * 在输出中我缺少ul或在某些地方。 * 当我们点击父复选框时,我想要这个复选框,必须选择他们的孩子和子孩子。

    <?php
        $groups = array(
                array('depth'=>0,'value'=>'DEF'),
                array('depth'=>1,'value'=>'DEF 1'),
                array('depth'=>2,'value'=>'DEF_1'),
                array('depth'=>1,'value'=>'DEF2'),
                array('depth'=>0,'value'=>'GROUP'),
                array('depth'=>1,'value'=>'GROUP1'),
                array('depth'=>1,'value'=>'GROUP2'),
                array('depth'=>2,'value'=>'GROUP2_1'),
                array('depth'=>2,'value'=>'TELUGU'),
                array('depth'=>3,'value'=>'RAM'),
                array('depth'=>0,'value'=>'GROUP3'),
                array('depth'=>1,'value'=>'GROUP3_1'),
                array('depth'=>1,'value'=>'GROUP3_2'),
                array('depth'=>1,'value'=>'GROUP3_3'),
                array('depth'=>1,'value'=>'DEF2_1'),
                array('depth'=>0,'value'=>'GROUP4'),
                array('depth'=>0,'value'=>'T8')
        );
        $count = count($groups);
        $old_depth = 0;
        echo '<ul>'.chr(13).chr(10);
        for($i = 0; $i<$count; $i++)
        {       
                if($old_depth==$groups[$i]['depth'])
                {
                    echo '<li>';
                    echo $groups[$i]['value'];
                    if(isset($groups[$i+1]))
                    {
                        if($old_depth!=$groups[$i+1]['depth']){ 
                            echo '<ul>';
                        }
                        else
                        {
                            echo '</li>';
                        }
                    }   
                }
                if($old_depth<$groups[$i]['depth'])
                {
                    echo '<li>';
                    echo  $groups[$i]['value'];
                    if(isset($groups[$i+1]))
                    {
                        if(($groups[$i]['depth'])+1==$groups[$i+1]['depth']){   
                            echo '<ul>';
                        }   
                        else
                        {
                            echo '</li>';
                            if(!($groups[$i]['depth']==$groups[$i+1]['depth']))
                            {
                                echo '</ul></li>';  
                            }
                            if($groups[$i+1]['depth']==0)
                            {
                                echo '</ul></li>';  
                            }
                        }
                    }
                    else
                    {
                        echo '</ul>';
                    }
                }   
    }
        echo '</li></ul>';
    ?>

我想要这种格式的输出。

    <ul>
        <li>DEF
            <ul>
                <li>DEF1 
                    <ul>
                        <li>DEF_1</li>
                    </ul>
                </li>
                        <li>DEF2</li>
            </ul>
        </li>


        <li>GROUP
            <ul>
                <li>GROUP1</li>
                <li>GROUP2
                    <ul>
                        <li>GROUP2_1</li>
                        <li>TELUGU
                            <ul>
                                <li>RAM</li>
                            </ul>
                        </li>
                    </ul>
                </li>
            </ul>
        </li>

        <li>GROUP3
            <ul>
                <li>GROUP3_1</li>
                <li>GROUP3_2</li>
                <li>GROUP3_3</li>
                <li>DEF2_1</li>
            </ul>
        </li>

        <li>GROUP4</li>
        <li>T8</li>

    </ul>

0 个答案:

没有答案