一个无限极分类如何显示下面格式:<ul>
<li class="row1">一级1
<ul>
<li class="row2">二级11</li>
<li class="row2">二级12</li>
<li class="row2">二级13
<ul>
<li class="row2">三级11
<ul>
<li class="row2">四级11</li>
<li class="row2">四级12</li>
<li class="row2">四级13</li>
</ul>
</li>
<li class="row2">三级21</li>
</ul>
</li>
</ul>
</li>
</ul>高手请教
<li class="row1">一级1
<ul>
<li class="row2">二级11</li>
<li class="row2">二级12</li>
<li class="row2">二级13
<ul>
<li class="row2">三级11
<ul>
<li class="row2">四级11</li>
<li class="row2">四级12</li>
<li class="row2">四级13</li>
</ul>
</li>
<li class="row2">三级21</li>
</ul>
</li>
</ul>
</li>
</ul>高手请教
//假定的的数据是这样的
$dat = array(
array('id' => 1, 'pid' => 0, 'name' => '一级1' ),
array('id' => 2, 'pid' => 1, 'name' => '二级11' ),
array('id' => 3, 'pid' => 1, 'name' => '二级12' ),
array('id' => 4, 'pid' => 9, 'name' => '三级11' ),
array('id' => 5, 'pid' => 4, 'name' => '四级13' ),
array('id' => 6, 'pid' => 9, 'name' => '三级21' ),
array('id' => 7, 'pid' => 4, 'name' => '四级11' ),
array('id' => 8, 'pid' => 4, 'name' => '四级12' ),
array('id' => 9, 'pid' => 1, 'name' => '二级13' ),
);$t = find_child($dat);
echo foo(array($t[1]));function foo($ar) {
$r = '<ul>';
foreach($ar as $v) {
$r .= '<li class="row1">' . $v['name'];
if(isset($v['child'])) $r .= foo($v['child']);
$r .= '</li>';
}
return $r . '</ul>';
}
函数 find_child 的定义在这里 http://topic.csdn.net/u/20110728/15/eadffb68-5eb6-40d8-9ec1-2bc439f45322.html
$dat = array(
array('id' => 1, 'pid' => 0, 'name' => '一级1' ),
array('id' => 2, 'pid' => 1, 'name' => '二级11' ),
array('id' => 3, 'pid' => 1, 'name' => '二级12' ),
array('id' => 4, 'pid' => 9, 'name' => '三级11' ),
array('id' => 5, 'pid' => 4, 'name' => '四级13' ),
array('id' => 6, 'pid' => 9, 'name' => '三级21' ),
array('id' => 7, 'pid' => 4, 'name' => '四级11' ),
array('id' => 8, 'pid' => 4, 'name' => '四级12' ),
array('id' => 9, 'pid' => 1, 'name' => '二级13' ),
);
function find_child($ar, $id='id', $pid='pid') {
foreach($ar as $v) $t[$v[$id]] = $v;
foreach ($t as $k => $item){
if( $item[$pid] ) {
$t[$item[$pid]]['child'][$item[$id]] =& $t[$k];
}
}
return $t;
}$t = find_child($dat);
echo foo(array($t[1]));function foo($ar) {
$r = '<ul>';
foreach($ar as $v) {
$r .= '<li class="row1">' . $v['name'];
if(isset($v['child'])) $r .= foo($v['child']);
$r .= '</li>';
}
return $r . '</ul>';
}
楼上的那个帖子,楼主你完全可以没事去看看下。真会有收获