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 相关文章推荐
批量修改RAR文件注释的php代码
Nov 20 PHP
PHP FTP操作类代码( 上传、拷贝、移动、删除文件/创建目录)
May 10 PHP
php中memcache 基本操作实例
May 17 PHP
2款PHP无限级分类实例代码
Nov 11 PHP
全新Mac配置PHP开发环境教程
Feb 03 PHP
php自定义函数实现汉字转换utf8编码的方法
Sep 29 PHP
PHP自动识别当前使用移动终端
May 21 PHP
PHP使用标准库spl实现的观察者模式示例
Aug 04 PHP
PHP结合Redis+MySQL实现冷热数据交换应用案例详解
Jul 09 PHP
laravel多条件查询方法(and,or嵌套查询)
Oct 09 PHP
php使用goto实现自动重启swoole、reactphp、workerman服务的代码
Apr 13 PHP
PHP如何使用array_unshift()在数组开头插入元素
Sep 01 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 防止单引号,双引号在接受页面转义
2008/07/10 PHP
Php 构造函数construct的前下划线是双的_
2009/12/08 PHP
php输出指定时间以前时间格式的方法
2015/03/21 PHP
PHP获取当前文件的父目录方法汇总
2016/07/21 PHP
PHP简单预防sql注入的方法
2016/09/27 PHP
ThinkPHP3.2框架自定义配置和加载用法示例
2018/06/14 PHP
另一个javascript小测验(代码集合)
2011/07/27 Javascript
Javascript实现的类似Google的Div拖动效果代码
2011/08/09 Javascript
Extjs Gird 支持中文拼音排序实现代码
2013/04/15 Javascript
jquery each的几种常用的使用方法示例
2014/01/21 Javascript
javascript中style.left和offsetLeft的用法说明
2014/03/07 Javascript
jQuery解析json数据实例分析
2015/11/24 Javascript
jQuery实现控制文字内容溢出用省略号(…)表示的方法
2016/02/26 Javascript
JavaScript登录验证码的实现
2016/10/27 Javascript
浅谈javascript中的事件冒泡和事件捕获
2016/12/28 Javascript
nodejs Assert中equal(),strictEqual(),deepEqual(),strictDeepEqual()比较
2017/09/18 NodeJs
AngularJS基于MVC的复杂操作实例讲解
2017/12/31 Javascript
vue项目前端错误收集之sentry教程详解
2019/05/27 Javascript
jQuery 筛选器简单操作示例
2019/10/02 jQuery
js数据类型转换与流程控制操作实例分析
2019/12/18 Javascript
JavaScript常用8种数组去重代码实例
2020/09/09 Javascript
uniapp电商小程序实现订单30分钟倒计时
2020/11/01 Javascript
web.py获取上传文件名的正确方法
2014/08/26 Python
python中的__slots__使用示例
2015/02/26 Python
讲解Python中if语句的嵌套用法
2015/05/14 Python
Python操作Word批量生成文章的方法
2015/07/28 Python
在python环境下运用kafka对数据进行实时传输的方法
2018/12/27 Python
关于python多重赋值的小问题
2019/04/17 Python
浅析与CSS3的loading动画加载相关的transition优化
2015/05/18 HTML / CSS
HTML5 文件域+FileReader 分段读取文件并上传到服务器
2017/10/23 HTML / CSS
得到Class的三个过程是什么
2012/08/10 面试题
村级个人对照检查材料
2014/08/22 职场文书
2014年公路养护工作总结
2014/12/04 职场文书
优秀教师推荐材料
2014/12/16 职场文书
python 自动化偷懒的四个实用操作
2021/04/11 Python
使用Navicat Premium工具将oracle数据库迁移到MySQL
2021/05/27 Oracle