无限极分类问题

sa111 2011-08-09 09:53:01
一个无限极分类如何显示下面格式:

<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>

高手请教。。。
...全文
220 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
q504196481 2011-08-10
  • 打赏
  • 举报
回复
<?php
$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>';
}
楼上的那个帖子,楼主你完全可以没事去看看下。真会有收获
xuzuning 2011-08-10
  • 打赏
  • 举报
回复

//假定的的数据是这样的
$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

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧