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 相关文章推荐
虚拟主机中对PHP的特殊设置
Oct 09 PHP
PHP has encountered an Access Violation 错误的解决方法
Jan 17 PHP
php 静态变量与自定义常量的使用方法
Jan 26 PHP
php学习笔记 php中面向对象三大特性之一[封装性]的应用
Jun 13 PHP
php获取网页请求状态程序示例
Jun 17 PHP
PHP使用递归生成文章树
Apr 21 PHP
分享php邮件管理器源码
Jan 06 PHP
使用phpexcel类实现excel导入mysql数据库功能(实例代码)
May 12 PHP
基于PHP制作验证码
Oct 12 PHP
浅谈PHP拦截器之__set()与__get()的理解与使用方法
Oct 18 PHP
php微信开发之谷歌测距
Jun 14 PHP
PHP实现递归的三种方法
Jul 04 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
冰滴咖啡制作步骤
2021/03/03 冲泡冲煮
一个数据采集类
2007/02/14 PHP
PHP中改变图片的尺寸大小的代码
2011/07/17 PHP
PHP使用glob函数遍历目录或文件夹的方法
2014/12/16 PHP
typecho插件编写教程(三):保存配置
2015/05/28 PHP
PHP基于PDO实现的SQLite操作类【包含增删改查及事务等操作】
2017/06/21 PHP
this[] 指的是什么内容 讨论
2007/03/24 Javascript
addEventListener 的用法示例介绍
2014/05/07 Javascript
jQuery控制TR显示隐藏的几种方法
2014/06/18 Javascript
ichart.js绘制虚线、平均分虚线效果的实现代码
2016/05/05 Javascript
JS闭包、作用域链、垃圾回收、内存泄露相关知识小结
2016/05/16 Javascript
详解webpack进阶之loader篇
2017/08/23 Javascript
JavaScript定义函数的三种实现方法
2017/09/23 Javascript
javascript浏览器用户代理检测脚本实现方法
2017/10/27 Javascript
bootstrap select下拉搜索插件使用方法详解
2017/11/23 Javascript
Vue 父子组件数据传递的四种方式( inheritAttrs + $attrs + $listeners)
2018/05/04 Javascript
vue.js使用watch监听路由变化的方法
2018/07/08 Javascript
vue项目从node8.x升级到12.x后的问题解决
2019/10/25 Javascript
Element PageHeader页头的使用方法
2020/07/26 Javascript
基于Ionic3实现选项卡切换并重新加载echarts
2020/09/24 Javascript
[02:41]辉夜杯现场一家三口 “我爸玩风行 我玩血魔”
2015/12/27 DOTA
python逐行读取文件内容的三种方法
2014/01/20 Python
利用Python如何生成随机密码
2016/04/20 Python
Python入门之三角函数全解【收藏】
2017/11/08 Python
Python金融数据可视化汇总
2017/11/17 Python
python3解析库BeautifulSoup4的安装配置与基本用法
2018/06/26 Python
Django通用类视图实现忘记密码重置密码功能示例
2019/12/17 Python
详解python算法常用技巧与内置库
2020/10/17 Python
茶叶生产计划书
2014/01/10 职场文书
《理想》教学反思
2014/02/17 职场文书
给学校的建议书范文
2014/05/15 职场文书
电视节目策划方案
2014/05/16 职场文书
管理提升方案
2014/06/04 职场文书
颂军魂爱军营演讲稿
2014/09/13 职场文书
群众路线领导班子四风对照检查材料
2014/09/27 职场文书
公安机关正风肃纪剖析材料
2014/10/10 职场文书