php两种无限分类方法实例
发布:smiling 来源: PHP粉丝网 添加日期:2021-05-22 21:35:21 浏览: 评论:0
这篇文章主要介绍了php两种无限分类方法实例,本文给出了递归方法和非递归方法实现的无限分类实例,需要的朋友可以参考下
一、递归方法,代码如下:
- $items = array(
- array('id'=>1,'pid'=>0,'name'=>'一级11'),
- array('id'=>2,'pid'=>0,'name'=>'一级12'),
- array('id'=>3,'pid'=>1,'name'=>'二级21'),
- array('id'=>4,'pid'=>3,'name'=>'三级31'),
- array('id'=>5,'pid'=>1,'name'=>'二级22'),
- array('id'=>6,'pid'=>3,'name'=>'三级32'),
- array('id'=>7,'pid'=>6,'name'=>'四级41'),
- );
- $i = 0;
- function formatTree($arr, $pid = 0){
- $tree = array();
- $temp = array();
- global $i;
- if($arr){
- foreach($arr as $k=>$v){
- if($v['pid'] == $pid){//
- $temp = formatTree($arr, $v['id']);
- $temp && $v['son'] = $temp;
- $tree[] = $v;
- }
- }
- }
- return $tree;
- }
- print_r(formatTree($items));
二、非递归方法,代码如下:
- function genTree($items) {
- $tree = array(); //格式化好的树
- foreach ($items as $item)
- if (isset($items[$item['pid']])){
- $items[$item['pid']]['son'][] = &$items[$item['id']];
- }
- else{
- $tree[] = &$items[$item['id']];
- }
- return $tree;
- }
- $items = array(
- 1 => array('id' => 1, 'pid' => 0, 'name' => '一级11'),
- 2 => array('id' => 2, 'pid' => 1, 'name' => '二级21'),
- 3 => array('id' => 3, 'pid' => 1, 'name' => '二级23'),
- 4 => array('id' => 4, 'pid' => 9, 'name' => '三级31'),
- 5 => array('id' => 5, 'pid' => 4, 'name' => '四级43'),
- 6 => array('id' => 6, 'pid' => 9, 'name' => '三级32'),
- 7 => array('id' => 7, 'pid' => 4, 'name' => '四级41'),
- 8 => array('id' => 8, 'pid' => 4, 'name' => '四级42'),
- 9 => array('id' => 9, 'pid' => 1, 'name' => '二级25'),
- 10 => array('id' => 10, 'pid' => 11, 'name' => '二级22'),
- 11 => array('id' => 11, 'pid' => 0, 'name' => '一级12'),
- 12 => array('id' => 12, 'pid' => 11, 'name' => '二级24'),
- 13 => array('id' => 13, 'pid' => 4, 'name' => '四级44'),
- 14 => array('id' => 14, 'pid' => 1, 'name' => '二级26'),
- 15 => array('id' => 15, 'pid' => 8, 'name' => '五级51'),
- 16 => array('id' => 16, 'pid' => 8, 'name' => '五级52'),
- 17 => array('id' => 17, 'pid' => 8, 'name' => '五级53'),
- 18 => array('id' => 18, 'pid' => 16, 'name' => '六级64'),
- );
- print_r(genTree($items));
Tags: php无限分类
- 上一篇:PHP使用递归生成文章树
- 下一篇:php获取访问者IP地址汇总
相关文章
- ·Php实现无限栏目分类读取的例子(2014-09-22)
- ·php实现递归与无限分类的方法(2021-05-14)
- ·PHP如何通过传引用的思想实现无限分类(代码简单)(2021-06-20)
- ·php无限分类使用concat如何实现(2021-06-25)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)