php生成无限栏目树


Posted in PHP onMarch 16, 2017

栏目数组:

$arr=Array(
  Array('cid' => 2,'cname' => '新闻','pid' => 0),
  Array('cid' => 4,'cname' =>'体育','pid' => 0),
  Array('cid' => 5,'cname' => '娱乐','pid' => 0),
  Array('cid' => 7,'cname' => '热点新闻','pid' =>2),
  Array('cid' => 8,'cname' => '小众新闻','pid' => 2),
  Array('cid' => 9,'cname' => '民谣新闻','pid' => 8),
);
<?php
$arr=Array(
  Array('cid' => 2,'cname' => '新闻','pid' => 0),
  Array('cid' => 4,'cname' =>'体育','pid' => 0),
  Array('cid' => 5,'cname' => '娱乐','pid' => 0),
  Array('cid' => 7,'cname' => '热点新闻','pid' =>2),
  Array('cid' => 8,'cname' => '小众新闻','pid' => 2),
  Array('cid' => 9,'cname' => '民谣新闻','pid' => 8),
);
function formatTree($array, $pid = 0,$level = 1,$field = array('pid'=>'pid','id'=>'id','children'=>'children')){
    $arr = array();
    foreach ($array as &$v) {
      if ($v[$field['pid']] == $pid) {
        $v['level'] = $level;
        $tem = formatTree($array, $v[$field['id']],$v['level']+1,$field);
        //判断是否存在子数组
        $tem && $v[$field['children']] = $tem;
        $arr[] = $v;
      }
    }
    return $arr;
  }
$tree = formatTree( $arr,0,1, $field = array('pid'=>'pid','id'=>'cid','children'=>'children') );
echo '<pre>';
print_r( $tree); 
?> 

我们有两个方法来进行软件设计:一个是让其足够的简单以至于让BUG无法藏身;另一个就是让其足够的复杂,让人找不到BUG。前者更难一些。

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

PHP 相关文章推荐
PHP5新特性: 更加面向对象化的PHP
Nov 18 PHP
PHP strtr() 函数使用说明
Nov 21 PHP
php FPDF类库应用实现代码
Mar 20 PHP
php不用内置函数对数组排序的两个算法代码
Feb 08 PHP
PHP垃圾回收机制简单说明
Jul 22 PHP
php目录操作函数之获取目录与文件的类型
Dec 29 PHP
php cookie的操作实现代码(登录)
Dec 29 PHP
php堆排序(heapsort)练习
Nov 13 PHP
php使用mkdir创建多级目录入门例子
May 10 PHP
codeigniter发送邮件并打印调试信息的方法
Mar 21 PHP
win7 wamp 64位 php环境开启curl服务遇到的问题及解决方法
Sep 16 PHP
thinkphp5修改view到根目录实例方法
Jul 02 PHP
CodeIgniter框架常见用法工作总结
Mar 16 #PHP
PHP常用算法和数据结构示例(必看篇)
Mar 15 #PHP
thinkPHP数据查询常用方法总结【select,find,getField,query】
Mar 15 #PHP
wordpress网站转移到本地运行测试的方法
Mar 15 #PHP
thinkPHP+ajax实现统计页面pv浏览量的方法
Mar 15 #PHP
PHP判断是手机端还是PC端 PHP判断是否是微信浏览器
Mar 15 #PHP
thinkPHP简单导入和使用阿里云OSSsdk的方法
Mar 15 #PHP
You might like
php 记录进行累加并显示总时长为秒的结果
2011/11/04 PHP
PHP实现的观察者模式实例
2017/06/21 PHP
Mac下关于PHP环境和扩展的安装详解
2019/10/17 PHP
10个新的最有前途的JavaScript框架
2009/03/12 Javascript
用按钮控制iframe显示的网页实现方法
2013/02/04 Javascript
JavaScript实现关键字高亮功能
2014/11/12 Javascript
nodejs中操作mysql数据库示例
2014/12/20 NodeJs
使用Bootstrap框架制作查询页面的界面实例代码
2016/05/27 Javascript
JavaScript实现九九乘法表的简单实例
2016/06/07 Javascript
老生常谈js动态添加事件--- 事件委托
2016/07/19 Javascript
js实现自定义路由
2017/02/04 Javascript
一篇看懂vuejs的状态管理神器 vuex状态管理模式
2017/04/20 Javascript
vue的toast弹窗组件实例详解
2018/05/14 Javascript
react实现换肤功能的示例代码
2018/08/14 Javascript
Angular5中状态管理的实现
2018/09/03 Javascript
解决vuecli3.0热更新失效的问题
2018/09/19 Javascript
微信小程序实现省市区三级地址选择
2020/06/21 Javascript
在Vue里如何把网页的数据导出到Excel的方法
2020/09/30 Javascript
Python列表append和+的区别浅析
2015/02/02 Python
python显示生日是星期几的方法
2015/05/27 Python
pandas使用apply多列生成一列数据的实例
2018/11/28 Python
python 实现识别图片上的数字
2019/07/30 Python
使用Python制作缩放自如的圣诞老人(圣诞树)
2019/12/25 Python
python 代码实现k-means聚类分析的思路(不使用现成聚类库)
2020/06/01 Python
使用Python构造hive insert语句说明
2020/06/06 Python
使用css创建三角形 使用CSS3创建3d四面体原理及代码(html5实践)
2013/01/06 HTML / CSS
HTML5逐步分析实现拖放功能的方法
2020/09/30 HTML / CSS
法国娇韵诗官方旗舰店:Clarins是来自法国的天然护肤品牌
2018/06/30 全球购物
FitFlop美国官网:英国符合人体工学的鞋类品牌
2018/10/05 全球购物
澳大利亚设计的婴儿和女孩的衣服:Oobi
2018/12/16 全球购物
伯克斯奥特莱斯:Burkes Outlet
2019/03/30 全球购物
Linux面试题LINUX系统类
2014/11/19 面试题
平面设计求职信
2014/03/10 职场文书
环保倡议书
2014/04/14 职场文书
小学生作文批改评语
2014/12/25 职场文书
经营场所证明范本
2015/06/19 职场文书