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 相关文章推荐
第二节 对象模型 [2]
Oct 09 PHP
基于MySQL体系结构的分析
May 02 PHP
ThinkPHP惯例配置文件详解
Jul 14 PHP
ThinkPHP跳转页success及error模板实例教程
Jul 17 PHP
Laravel 4 初级教程之视图、命名空间、路由
Oct 30 PHP
简单谈谈PHP vs Node.js
Jul 17 PHP
Yii2创建多界面主题(Theme)的方法
Oct 08 PHP
ThinkPHP框架表单验证操作方法
Jul 19 PHP
使用ucenter实现多站点同步登录的讲解
Mar 21 PHP
PHP容器类的两种实现方式示例
Jul 24 PHP
PHP Trait功能与用法实例分析
Jun 03 PHP
聊聊 PHP 8 新特性 Attributes
Aug 19 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判断文件是否存在、是否可读、目录是否存在的代码
2012/10/03 PHP
thinkphp视图模型查询提示ERR: 1146:Table 'db.pr_order_view' doesn't exist的解决方法
2014/10/30 PHP
PHP实现的带超时功能get_headers函数
2015/02/10 PHP
PHP模板引擎Smarty自定义变量调解器用法
2016/04/11 PHP
php实现微信支付之现金红包
2018/05/30 PHP
TP5(thinkPHP框架)实现后台清除缓存功能示例
2019/05/29 PHP
javascript之bind使用介绍
2011/10/09 Javascript
jquery新的绑定事件机制on方法的使用方法
2014/04/15 Javascript
JavaScript实现多个重叠层点击切换效果的方法
2015/04/24 Javascript
H5移动端适配 Flexible方案
2016/10/24 Javascript
js基础之DOM中元素对象的属性方法详解
2016/10/28 Javascript
React-router v4 路由配置方法小结
2017/08/08 Javascript
浅谈JS对象添加getter与setter的5种方法
2018/06/09 Javascript
浅谈Vue CLI 3结合Lerna进行UI框架设计
2019/04/14 Javascript
微信小程序如何利用getCurrentPages进行页面传值
2019/07/01 Javascript
用python实现面向对像的ASP程序实例
2014/11/10 Python
使用python编写简单的小程序编译成exe跑在win10上
2018/01/15 Python
Python使用OpenCV进行标定
2018/05/08 Python
利用python计算时间差(返回天数)
2019/09/07 Python
python turtle 绘制太极图的实例
2019/12/18 Python
Pandas实现一列数据分隔为两列
2020/05/18 Python
HTML5 语音搜索只需一句代码
2013/01/03 HTML / CSS
英国排名第一的LED灯泡网站:LED Bulbs
2019/09/03 全球购物
加拿大户外探险购物网站:SAIL
2020/06/27 全球购物
专业实习自我鉴定
2013/10/29 职场文书
设计总监岗位职责
2013/12/07 职场文书
行政办公员自我评价分享
2013/12/14 职场文书
敬老月活动总结
2014/08/28 职场文书
优秀三好学生事迹材料
2014/08/31 职场文书
大学新生军训自我鉴定范文
2014/09/13 职场文书
典型事迹材料范文
2014/12/29 职场文书
工程资料员岗位职责
2015/04/13 职场文书
消防演习通知
2015/04/25 职场文书
2015年车间主任工作总结
2015/05/21 职场文书
看雷锋电影观后感
2015/06/10 职场文书
Vue 打包后相对路径的引用问题
2022/06/05 Vue.js