数组转html的ul标签

浏览:1553 发布日期:2012/12/24 分类:技术分享
函数如下:因为是写在类里,如果要放在comm里需要把$this去掉    private function array2ul($arr,$id)
    {
    if (empty($id)){
    $deep.="<ul>\n";
    }else {
    $deep.='<ul id="'.$id.'">'."\n";
    }
    foreach ($arr as $k => $v ) {
    if ( $k === 'title' ) {
    $deep=substr($deep, 0, -5).'<a href="'.$arr['title']['url'].'">'.$arr['title']['id']."</a>\n<ul>\n";
    }else{
    if (is_array($v)) {
    $deep.="<li>\n".$this->array2ul($v)."</li>\n";
    }else {
    return '<a href="'.$arr['url'].'">'.$arr['id'].'</a>'."\n";
    }
    }
    }
    $deep.="</ul>\n";
    return $deep;
    }
测试数组如下    $a=array(
    array('title'=>array('id'=>'s1','url'=>'#'),
    array('id'=>'a1','url'=>'#',
    ),
    array(
    'title'=>array('id'=>'s1','url'=>'#'),
    array('id'=>'a21','url'=>'aa21',),
    array('id'=>'a21','url'=>'aa21',),
    array('id'=>'a21','url'=>'aa21',),
    ),
    array('id'=>'a3','url'=>'aa3',
    ),
    ),
    array('title'=>array('id'=>'s1','url'=>'#'),
    array('title'=>array('id'=>'k1','url'=>'kk1'),
    array('title'=>array('id'=>'p1','url'=>'p1'),
    array('id'=>'b1','url'=>'bb1',
    ),
    array('id'=>'b2','url'=>'bb2',
    ),
    array('id'=>'b3','url'=>'bb3',
    ),
    ),
    ),
    array('id'=>'b2','url'=>'bb2',
    ),
    array('id'=>'b3','url'=>'bb3',
    ),
    ),
    array('title'=>array('id'=>'t1','url'=>'tt1'),
    array('id'=>'c1','url'=>'cc1',
    ),
    array('id'=>'c2','url'=>'cc2',
    ),
    array('id'=>'c3','url'=>'cc3',
    ),
    ),
    );
使用方法    $b=$this->array2ul($a,"nav");
    echo $b;
结果    <ul id="nav">
    <li>
    <a href="#">s1</a>
    <ul>
    <li>
    <a href="#">a1</a>
    </li>
    <li>
    <a href="#">s1</a>
    <ul>
    <li>
    <a href="aa21">a21</a>
    </li>
    <li>
    <a href="aa21">a21</a>
    </li>
    <li>
    <a href="aa21">a21</a>
    </li>
    </ul>
    </li>
    <li>
    <a href="aa3">a3</a>
    </li>
    </ul>
    </li>
    <li>
    <a href="#">s1</a>
    <ul>
    <li>
    <a href="kk1">k1</a>
    <ul>
    <li>
    <a href="p1">p1</a>
    <ul>
    <li>
    <a href="bb1">b1</a>
    </li>
    <li>
    <a href="bb2">b2</a>
    </li>
    <li>
    <a href="bb3">b3</a>
    </li>
    </ul>
    </li>
    </ul>
    </li>
    <li>
    <a href="bb2">b2</a>
    </li>
    <li>
    <a href="bb3">b3</a>
    </li>
    </ul>
    </li>
    <li>
    <a href="tt1">t1</a>
    <ul>
    <li>
    <a href="cc1">c1</a>
    </li>
    <li>
    <a href="cc2">c2</a>
    </li>
    <li>
    <a href="cc3">c3</a>
    </li>
    </ul>
    </li>
    </ul>
最佳答案
评论() 相关
后面还有条评论,点击查看>>