PHP 无限分类table转div

amu1433 2013-03-20 06:22:58

参考网址
http://www.qunfei.com/htmls/webdevelop/php/2012/0116/819.html


function dafenglei_arr($m,$id)
{
global $class_arr;
global $ppid;
if($id=="") $id=0;
$n = str_pad('',$m,'-',STR_PAD_RIGHT);
$n = str_replace("-","  ",$n);
for($i=0;$i<count($class_arr);$i++){


if($class_arr[$i]['classFID']==$id){
echo "<tr>\n";
echo "<td height=\"28\" class=\"font\">".$n."|--<a href=\"?action=edit&id=".$class_arr[$i]['classid']."\">".$class_arr[$i]['className'].$m."</a></td>\n";
echo "</tr>\n";
dafenglei_arr($m+1,$class_arr[$i]['classid']);
}

}

}



输出的格式为
<tr>
<td>  栏目1</td>
<td>    栏目1-1</td>
<td>    栏目1-2</td>
<td>    栏目1-3</td>
<td>      栏目1-3-1</td>
</tr>



现在想转换成

<ul id="files">
<li id="m33"><a href="javascript:void(0);" >栏目一</a>
<ul>
<li><a href="/news-p11-pp33-ppp140" ><span class="">栏目1-1</span></a></li>
<li><a href="/news-p11-pp33-ppp141" ><span class="">栏目1-2</span></a></li>
<li><a href="javascript:void(0);" >栏目1-3</a>
<ul>
<li><a href="/news-p11-pp33-ppp140" ><span class="">栏目1-3-1</span></a></li>
</ul>
</li>

</ul></li>
<li id="m34">...........等类似</li>

</ul>
...全文
232 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
amu1433 2013-03-21
  • 打赏
  • 举报
回复
可能提供的数据不全 不是按照“-”号区分的
Array
(
[0] => Array
(
[id] => 10
[pid] => 0
[ppid] => 7
[m_title] => 系统分类
[m_flag] => 1
[m_type] => 0
[m_url] =>
[m_lage] => 0
[m_seotitle] =>
[m_seokey] =>
[m_seodesc] =>
[m_sort] => 0
[m_time] => 0000-00-00 00:00:00
)

[1] => Array
(
[id] => 9
[pid] => 0
[ppid] => 6
[m_title] => 排序管理
[m_flag] => 0
[m_type] => 0
[m_url] =>
[m_lage] => 0
[m_seotitle] =>
[m_seokey] =>
[m_seodesc] =>
[m_sort] => 0
[m_time] => 0000-00-00 00:00:00
)

[2] => Array
(
[id] => 8
[pid] => 0
[ppid] => 6
[m_title] => 登陆日志
[m_flag] => 0
[m_type] => 0
[m_url] =>
[m_lage] => 0
[m_seotitle] =>
[m_seokey] =>
[m_seodesc] =>
[m_sort] => 0
[m_time] => 0000-00-00 00:00:00
)

[3] => Array
(
[id] => 7
[pid] => 0
[ppid] => 6
[m_title] => 系统信息
[m_flag] => 0
[m_type] => 0
[m_url] => 11
[m_lage] => 0
[m_seotitle] =>
[m_seokey] =>
[m_seodesc] =>
[m_sort] => 10
[m_time] => 0000-00-00 00:00:00
)

[4] => Array
(
[id] => 6
[pid] => 0
[ppid] => 0
[m_title] => 网站管理
[m_flag] => 1
[m_type] => 4
[m_url] => 11
[m_lage] => 1
[m_seotitle] =>
[m_seokey] =>
[m_seodesc] =>
[m_sort] => 10
[m_time] => 0000-00-00 00:00:00
)

[5] => Array
(
[id] => 5
[pid] => 0
[ppid] => 2
[m_title] => 文字链接
[m_flag] => 0
[m_type] => 22
[m_url] =>
[m_lage] => 0
[m_seotitle] =>
[m_seokey] =>
[m_seodesc] =>
[m_sort] => 10
[m_time] =>
)

[6] => Array
(
[id] => 4
[pid] => 0
[ppid] => 0
[m_title] => 关于我们
[m_flag] => 0
[m_type] => 0
[m_url] =>
[m_lage] => 0
[m_seotitle] =>
[m_seokey] =>
[m_seodesc] =>
[m_sort] => 10
[m_time] =>
)

[7] => Array
(
[id] => 1
[pid] => 0
[ppid] => 0
[m_title] => 新闻中心
[m_flag] => 0
[m_type] => 0
[m_url] =>
[m_lage] => 0
[m_seotitle] =>
[m_seokey] =>
[m_seodesc] =>
[m_sort] => 10
[m_time] =>
)

[8] => Array
(
[id] => 2
[pid] => 0
[ppid] => 0
[m_title] => 友情链接
[m_flag] => 0
[m_type] => 0
[m_url] =>
[m_lage] => 0
[m_seotitle] =>
[m_seokey] =>
[m_seodesc] =>
[m_sort] => 102
[m_time] =>
)

)


得到的应该是这种结果


我想把上面的结果转换成



<ul id="files">
<li id="m33"><a href="javascript:void(0);" >上级文件</a>
<ul><li><a href="/news-p11-pp33-ppp140" ><span class="">运检部</span></a></li>
<li><a href="/news-p11-pp33-ppp141" ><span class="">人劳部</span></a></li>
<li><a href="/news-p11-pp33-ppp142" ><span class="">财务部</span></a></li>
<li><a href="/news-p11-pp33-ppp143" ><span class="">安监部</span></a></li>
<li><a href="/news-p11-pp33-ppp144" ><span class="">后勤部</span></a></li>
</ul></li>
<li id="m34"><a href="javascript:void(0);" >各类制度</a>
<ul><li><a href="/news-p11-pp34-ppp145" ><span class="">检修管理</span></a></li>
<li><a href="/news-p11-pp34-ppp146" ><span class="">运行管理</span></a></li>
<li><a href="/news-p11-pp34-ppp147" ><span class="">安全管理</span></a></li>
<li><a href="/news-p11-pp34-ppp148" ><span class="">综合管理</span></a></li>
<li><a href="/news-p11-pp34-ppp149" ><span class="">培训管理</span></a></li>
<li><a href="/news-p11-pp34-ppp150" ><span class="">科技管理</span></a></li>
</ul></li>
</ul>


这种div+CSS的 无限分类形式
xuzuning 2013-03-21
  • 打赏
  • 举报
回复
$ar = array (
  2 => 
  array (
    'classid' => '6',
    'classfid' => '0',
    'classname' => '栏目一',
  ),
  1 => 
  array (
    'id' => '7',
    'classfid' => '6',
    'classname' => '栏目1-1',
  ),
  0 => 
  array (
    'classid' => '10',
    'classfid' => '7',
    'classname' => '栏目1-1-1',
  ),
);

echo '<ul>';
foreach($ar as $item) {
  if($item['classfid'] == 0) $deep = 0;
  $t = substr_count($item['classname'], '-');
  if($t < $deep) echo '</li></ul>';
  if($t > $deep) echo '<ul>';
  echo '<li>'.$item['classname'];
  $deep = $t;
}
while($deep--)  echo '</li></ul>';
<ul><li>栏目一<ul><li>栏目1-1<ul><li>栏目1-1-1</li></ul></li></ul>
wang8223538 2013-03-20
  • 打赏
  • 举报
回复
function add_($num){ $str=''; for($i=1;$i<=$num;$i++){ $str.='  '; } return $str; } function tree($_arr,$i=-1){ $_tree=''; $i++; foreach ($_arr as $_key => $_value){ if(is_array($_value)){ $_tree.=add_($i).$_key.'<br />'; $_tree.=tree($_value,$i); }else{ $_tree.=add_($i).$_key.'=>'.$_value.'<br />'; } } return $_tree; } 试试这两个函数,再自加点HTML标签。
amu1433 2013-03-20
  • 打赏
  • 举报
回复
Array ( [2] => Array ( [classid] => 6 [classfid] => 0 [classname] => 栏目一 ) [1] => Array ( [id] => 7 [classfid] => 6 [classname] => 栏目1-1 ) [0] => Array ( [classid] => 10 [classfid] => 7 [classname] => 栏目1-1-1 ) ) 差不多 就这数据
amu1433 2013-03-20
  • 打赏
  • 举报
回复
就是个无限分类 他这个无限分类是按table显示的 在td前面加空格 来区分 一级二级栏目的 我想用div 实现
amu1433 2013-03-20
  • 打赏
  • 举报
回复
http://bbs.csdn.net/topics/390398703 跟这个帖子结合下...
xuzuning 2013-03-20
  • 打赏
  • 举报
回复
请你给出测试数据

21,886

社区成员

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

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