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> 最佳答案