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 相关文章推荐
关于页面优化和伪静态
Oct 11 PHP
PHP 程序员应该使用的10个组件
Oct 31 PHP
php实现的遍历文件夹下所有文件,编辑删除
Jan 05 PHP
PHP 遍历文件实现代码
May 04 PHP
PHP投票系统防刷票判断流程分析
Feb 04 PHP
探讨:如何编写PHP扩展
Jun 13 PHP
PHP获取MySql新增记录ID值的3种方法
Jun 24 PHP
详解WordPress中提醒安装插件以及隐藏插件的功能实现
Dec 25 PHP
Zend Framework教程之Zend_Registry对象用法分析
Mar 22 PHP
PHP+Apache+Mysql环境搭建教程
Aug 01 PHP
PHP单例模式定义与使用实例详解
Feb 06 PHP
PHP实现广度优先搜索算法(BFS,Broad First Search)详解
Sep 16 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
百度地图经纬度转换到腾讯地图/Google 对应的经纬度
2015/08/28 PHP
php实时倒计时功能实现方法详解
2017/02/27 PHP
原型方法的不同写法居然会影响调试的解决方法
2007/03/08 Javascript
jquery 简单图片导航插件jquery.imgNav.js
2010/03/17 Javascript
js prototype截取字符串函数
2010/04/01 Javascript
原生Js实现按的数据源均分时间点幻灯片效果(已封装)
2010/12/28 Javascript
jquery高效反选具体实现
2013/05/05 Javascript
httpclient模拟登陆具体实现(使用js设置cookie)
2013/12/11 Javascript
js实现刷新iframe的方法汇总
2015/04/27 Javascript
jquery+php实现滚动的数字特效
2015/11/29 Javascript
使用vue-cli编写vue插件的方法
2018/02/26 Javascript
JS通过位运算实现权限加解密
2018/08/14 Javascript
vue+element创建动态的form表单及动态生成表格的行和列
2019/05/20 Javascript
jQuery Ajax async=&gt;false异步改为同步时,解决导致浏览器假死的问题
2019/07/22 jQuery
对layui中的onevent 和event的使用详解
2019/09/06 Javascript
Jquery Datatables的使用详解
2020/01/30 jQuery
Vue实现手机扫描二维码预览页面效果
2020/05/28 Javascript
详解JS预解析原理
2020/06/16 Javascript
Windows下Python的Django框架环境部署及应用编写入门
2016/03/10 Python
基于python绘制科赫雪花
2018/06/22 Python
python高效过滤出文件夹下指定文件名结尾的文件实例
2018/10/21 Python
Python用5行代码写一个自定义简单二维码
2018/10/21 Python
pandas按行按列遍历Dataframe的几种方式
2019/10/23 Python
基于Django signals 信号作用及用法详解
2020/03/28 Python
超全Python图像处理讲解(多模块实现)
2020/04/13 Python
python实现人像动漫化的示例代码
2020/05/17 Python
HTML5 Canvas画线技巧——实现绘制一个像素宽的细线
2013/08/02 HTML / CSS
canvas实现手机的手势解锁的步骤详细
2020/03/16 HTML / CSS
欧洲最大的美妆零售网站:Feelunique
2017/01/14 全球购物
了解AppleShare protocol(AppleShare协议)吗
2015/08/28 面试题
环保建议书
2014/03/12 职场文书
采购部长岗位职责
2014/06/13 职场文书
2014年干部培训工作总结
2014/12/17 职场文书
2014年加油站站长工作总结
2014/12/23 职场文书
运动会表扬稿范文
2015/05/05 职场文书
Python实战之大鱼吃小鱼游戏的实现
2022/04/01 Python