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 win下Socket方式发邮件类
Aug 21 PHP
提高define性能的php扩展hidef的安装和使用
Jun 14 PHP
PHPWind与Discuz截取字符函数substrs与cutstr性能比较
Dec 05 PHP
PHP CLI模式下的多进程应用分析
Jun 03 PHP
深入PHP magic quotes的详解
Jun 17 PHP
CI框架装载器Loader.php源码分析
Nov 04 PHP
php使用curl出现Expect:100-continue解决方法
Mar 03 PHP
php实现每天自动变换随机问候语的方法
May 12 PHP
php抽象类用法实例分析
Jul 07 PHP
PHP检查网站是否宕机的方法示例
Jul 24 PHP
php实现微信公众平台发红包功能
Jun 14 PHP
PHP7 错误处理机制修改
Mar 09 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提交后跳转
2013/06/23 PHP
又一个PHP实现的冒泡排序算法分享
2014/08/21 PHP
PHP输出九九乘法表代码实例
2015/03/27 PHP
Laravel中的chunk组块结果集处理与注意问题
2018/08/15 PHP
TP5(thinkPHP5框架)实现显示错误信息及行号功能的方法
2019/06/03 PHP
javascript判断是否按回车键并解决浏览器之间的差异
2014/05/13 Javascript
VUEJS实战之构建基础并渲染出列表(1)
2016/06/13 Javascript
seajs模块之间依赖的加载以及模块的执行
2016/10/21 Javascript
Vue.JS入门教程之自定义指令
2016/12/08 Javascript
jQuery UI 实例讲解 - 日期选择器(Datepicker)
2017/09/18 jQuery
AngularJS下$http服务Post方法传递json参数的实例
2018/03/29 Javascript
Vue实现导出excel表格功能
2018/03/30 Javascript
微信小程序使用template标签实现五星评分功能
2018/11/03 Javascript
javascript json字符串到json对象转义问题
2019/01/22 Javascript
3分钟了解vue数据劫持的原理实现
2019/05/01 Javascript
微信小程序云开发 生成带参小程序码流程
2019/05/18 Javascript
解决vue单页面多个组件嵌套监听浏览器窗口变化问题
2020/07/30 Javascript
在vue中使用cookie记住用户上次选择的实例(本次例子中为下拉框)
2020/09/11 Javascript
Javascript实现打鼓效果
2021/01/29 Javascript
[48:48]VGJ.T vs Liquid 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
python利用OpenCV2实现人脸检测
2020/04/16 Python
浅谈python连续赋值可能引发的错误
2018/11/10 Python
Python3.6中Twisted模块安装的问题与解决
2019/04/15 Python
python中的global关键字的使用方法
2019/08/20 Python
FFT快速傅里叶变换的python实现过程解析
2019/10/21 Python
python函数调用,循环,列表复制实例
2020/05/03 Python
利用Storage Event实现页面间通信的示例代码
2018/07/26 HTML / CSS
Fox Racing官方网站:越野摩托车和山地自行车装备和服装
2019/12/23 全球购物
意大利包包和行李箱销售网站:Bagaglio.it
2021/03/02 全球购物
2014自荐信的写作技巧
2014/01/28 职场文书
《争吵》教学反思
2014/02/15 职场文书
乒乓球兴趣小组活动总结
2014/07/08 职场文书
新疆民族团结演讲稿
2014/08/27 职场文书
2014年学校办公室工作总结
2014/12/19 职场文书
邀请书格式范文
2015/02/02 职场文书
年中了,该如何写好个人述职报告?
2019/07/02 职场文书