无极分类后foreach实现多级菜单

cjqcy416 2016-09-11 11:20:07
1.得到一个已无极分类的二维数组
<?php
$lists = array(
'0' => array('m_id' => 12, 'm_name' => '一级分公司标准成本', 'm_parent_id' => 11, 'm_sort' => 50, 'level' => 0),
'1' => array('m_id' => 13, 'm_name' => '机台费用', 'm_parent_id' => 12, 'm_sort' => 50, 'level' => 1),
'2' => array('m_id' => 144, 'm_name' => '机台费用分析', 'm_parent_id' => 13, 'm_sort' => 50, 'level' => 2),
'3' => array('m_id' => 14, 'm_name' => '原材料价格管理', 'm_parent_id' => 11, 'm_sort' => 50, 'level' => 0),
'4' => array('m_id' => 15, 'm_name' => '原材料价格表', 'm_parent_id' => 14, 'm_sort' => 50, 'level' => 1),
'5' => array('m_id' => 143, 'm_name' => '原材料价格分析1', 'm_parent_id' => 15, 'm_sort' => 50, 'level' => 2),
'6' => array('m_id' => 148, 'm_name' => '原材料价格分析2', 'm_parent_id' => 15, 'm_sort' => 50, 'level' => 2)
);
?>

2.想要在html用foreach实现多级菜单的效果


<ul>
<li>0一级分公司标准成本

<ul>
<li>1机台费用

<ul>
<li>2机台费用分析</li>
</ul>
</li>
</ul>
</li>
<li>0原材料价格管理
<ul>
<li>1原材料价格表
<ul>
<li>2原材料价格分析1</li>
<li>2原材料价格分析2</li>
</ul>
</li>
</ul>
</li>
</ul>

3.我的实现方式,总是实现不了,请大神帮忙指点错在哪里,谢谢!

<ul>
<?php foreach ($lists as $list): ?>
<?php if ($list['level'] == 0) { ?>
<li><?php echo '0', $list['m_name']; ?>
<?php } else if ($list['level'] == 1) { ?>
<ul>
<li><?php echo '1', $list['m_name']; ?>
</ul>
</li>
<li>
<ul>
<?php } else { ?>
<li><?php echo '2', $list['m_name']; ?></li>
</ul>
</li>
<?php } ?>
<?php endforeach; ?>
</ul>
...全文
426 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_34921650 2016-09-13
  • 打赏
  • 举报
回复
恩 两个代码段你看下,不懂的留言!
一级、二级分类


三级分类
cjqcy416 2016-09-12
  • 打赏
  • 举报
回复
不知道怎么用啊
cjqcy416 2016-09-12
  • 打赏
  • 举报
回复
引用 1 楼 傲雪星枫的回复:

<?php
$lists = array(
'0' => array('m_id' => 12, 'm_name' => '一级分公司标准成本', 'm_parent_id' => 11, 'm_sort' => 50, 'level' => 0),
'1' => array('m_id' => 13, 'm_name' => '机台费用', 'm_parent_id' => 12, 'm_sort' => 50, 'level' => 1),
'2' => array('m_id' => 144, 'm_name' => '机台费用分析', 'm_parent_id' => 13, 'm_sort' => 50, 'level' => 2),
'3' => array('m_id' => 14, 'm_name' => '原材料价格管理', 'm_parent_id' => 11, 'm_sort' => 50, 'level' => 0),
'4' => array('m_id' => 15, 'm_name' => '原材料价格表', 'm_parent_id' => 14, 'm_sort' => 50, 'level' => 1),
'5' => array('m_id' => 143, 'm_name' => '原材料价格分析1', 'm_parent_id' => 15, 'm_sort' => 50, 'level' => 2),
'6' => array('m_id' => 148, 'm_name' => '原材料价格分析2', 'm_parent_id' => 15, 'm_sort' => 50, 'level' => 2)
);
?>

<ul>
<?php foreach ($lists as $list): ?>
<?php if($list['level']==0){ ?>
<li><?php echo '0', $list['m_name']; ?></li>
<?php } ?>
<?php if($list['level']==1){ ?>
<li style="list-style:none"><ul><li><?php echo '1', $list['m_name']; ?></li></ul></li>
<?php } ?>
<?php if($list['level']==2){ ?>
<li style="list-style:none"><ul><li style="list-style:none"><ul><li><?php echo '2', $list['m_name']; ?></li></ul></li></ul></li>
<?php } ?>
<?php endforeach; ?>
</ul>
可以得到效果,但没有我html里那样的结构
傲雪星枫 2016-09-12
  • 打赏
  • 举报
回复

<?php
$lists = array(
'0' => array('m_id' => 12, 'm_name' => '一级分公司标准成本', 'm_parent_id' => 11, 'm_sort' => 50, 'level' => 0),
'1' => array('m_id' => 13, 'm_name' => '机台费用', 'm_parent_id' => 12, 'm_sort' => 50, 'level' => 1),
'2' => array('m_id' => 144, 'm_name' => '机台费用分析', 'm_parent_id' => 13, 'm_sort' => 50, 'level' => 2),
'3' => array('m_id' => 14, 'm_name' => '原材料价格管理', 'm_parent_id' => 11, 'm_sort' => 50, 'level' => 0),
'4' => array('m_id' => 15, 'm_name' => '原材料价格表', 'm_parent_id' => 14, 'm_sort' => 50, 'level' => 1),
'5' => array('m_id' => 143, 'm_name' => '原材料价格分析1', 'm_parent_id' => 15, 'm_sort' => 50, 'level' => 2),
'6' => array('m_id' => 148, 'm_name' => '原材料价格分析2', 'm_parent_id' => 15, 'm_sort' => 50, 'level' => 2)
);
?>

<ul>
<?php foreach ($lists as $list): ?>
<?php if($list['level']==0){ ?>
<li><?php echo '0', $list['m_name']; ?></li>
<?php } ?>
<?php if($list['level']==1){ ?>
<li style="list-style:none"><ul><li><?php echo '1', $list['m_name']; ?></li></ul></li>
<?php } ?>
<?php if($list['level']==2){ ?>
<li style="list-style:none"><ul><li style="list-style:none"><ul><li><?php echo '2', $list['m_name']; ?></li></ul></li></ul></li>
<?php } ?>
<?php endforeach; ?>
</ul>
yeyiop 2016-09-12
  • 打赏
  • 举报
回复
可以用递归函数

21,887

社区成员

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

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