php无限级分类(带层深)算法
发布:smiling 来源: PHP粉丝网 添加日期:2014-08-28 10:26:05 浏览: 评论:0
一个利用数组来实现无限级分类php类程序,有需要的朋友可参考,这里就不多说什么了直接复制上代码.
php无限级分类(带层深)算法实例代码如下:
- <?php
- $cates = array(
- array(
- 'cid' => 1,
- 'cname' => '新闻',
- 'pid' => 0
- ),
- array(
- 'cid' => 2,
- 'cname' => '通知',
- 'pid' => 0
- ),
- array(
- 'cid' => 3,
- 'cname' => '国内新闻',
- 'pid' => 1
- ),
- array(
- 'cid' => 4,
- 'cname' => '国际新闻',
- 'pid' => 1
- ),
- array(
- 'cid' => 5,
- 'cname' => '北京新闻',
- 'pid' => 3
- ),
- array(
- 'cid' => 6,
- 'cname' => '上海新闻',
- 'pid' => 3
- ),
- array(
- 'cid' => 7,
- 'cname' => '紧急通知',
- 'pid' => 2
- ),
- array(
- 'cid' => 8,
- 'cname' => '一般通知',
- 'pid' => 2
- ),
- );
- /**
- * 生成菜单
- *
- * @param array $data 原始数据
- * @param integer $pid 当前分类的父id
- * @return array 处理后数据
- */
- function createMenuTree($data = array(), $pid = 0)
- {
- if (emptyempty($data))
- {
- return array();
- }
- static $level = 0;
- $returnArray = array();
- foreach ($data as $node)
- {
- if ($node['pid'] == $pid)
- {
- $returnArray[] = array(
- 'cid' => $node['cid'],
- 'cname' => $node['cname'],
- 'level' => $level
- );
- if (hasChild($node['cid'], $data))
- {
- $level++;
- $returnArray = array_merge($returnArray, createMenuTree($data, $node['cid']));
- $level--;
- }
- }
- }
- return $returnArray;
- }
- /**
- * 检查是否有子分类
- *
- * @param integer $cid 当前分类的id
- * @param array $data 原始数据
- * @return boolean 是否有子分类
- */
- function hasChild($cid, $data)
- {
- $hasChild = false;
- foreach ($data as $node)
- {
- if ($node['pid'] == $cid)
- {
- $hasChild = true;
- break;
- }
- }
- return $hasChild;
- }
- header('Content-Type: text/html; charset=utf-8');
- $result = createMenuTree($cates);
- //开源代码phpfensi.com
- foreach ($result as $row)
- {
- for ($i = 0; $i < $row['level']; $i++)
- {
- echo "t";
- }
- echo $row['cname'] . "n";
- }
- ?>
Tags: php无限级分类 php层深层深
- 上一篇:PHP中利用APC模块实现文件上传进度条
- 下一篇:PHP生成带LOGO的二维码图像
相关文章
- ·PHP无限级分类实现程序(2014-08-28)
- ·PHP版表格展示无限级分类(2014-08-28)
- ·php实现无限级分类(2021-05-04)
- ·CMSPRESS 10行代码搞定 PHP无限级分类2(2021-09-06)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)