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编程过程中需要了解的this,self,parent的区别
Dec 30 PHP
QueryPath PHP 中的jQuery
Apr 11 PHP
PHP学习笔记之数组篇
Jun 28 PHP
CentOS 6.2使用yum安装LAMP以及phpMyadmin详解
Jun 17 PHP
php 去除html标记--strip_tags与htmlspecialchars的区别详解
Jun 26 PHP
ThinkPHP采用原生query实现关联查询left join实例
Dec 02 PHP
php批量添加数据与批量更新数据的实现方法
Dec 16 PHP
通过php添加xml文档内容的方法
Jan 23 PHP
php实现在服务器上创建目录的方法
Mar 16 PHP
php in_array() 检查数组中是否存在某个值详解
Nov 23 PHP
php批量转换文件夹下所有文件编码的函数类
Aug 06 PHP
php设计模式之原型模式分析【星际争霸游戏案例】
Mar 23 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中将地址生成迅雷快车旋风链接的代码[测试通过]
2011/04/20 PHP
ajax取消挂起请求的处理方法
2013/03/18 PHP
PHP微信开发用Cache 解决数据缓存
2016/07/11 PHP
js 巧妙去除数组中的重复项
2010/01/25 Javascript
jQuery maxlength文本字数限制插件
2010/04/16 Javascript
nodejs中实现阻塞实例
2015/03/24 NodeJs
JavaScript精炼之构造函数 Constructor及Constructor属性详解
2015/11/05 Javascript
vue开发心得和技巧分享
2016/10/27 Javascript
Javascript数组循环遍历之forEach详解
2016/11/07 Javascript
微信小程序网络封装(简单高效)
2018/08/06 Javascript
layer.alert自定义关闭回调事件的方法
2019/09/27 Javascript
Python strip lstrip rstrip使用方法
2008/09/06 Python
pymongo为mongodb数据库添加索引的方法
2015/05/11 Python
python中string模块各属性以及函数的用法介绍
2016/05/30 Python
Python中struct模块对字节流/二进制流的操作教程
2017/01/21 Python
python中pandas.DataFrame的简单操作方法(创建、索引、增添与删除)
2017/03/12 Python
一个基于flask的web应用诞生 使用模板引擎和表单插件(2)
2017/04/11 Python
Python基于回溯法子集树模板解决全排列问题示例
2017/09/07 Python
tensorflow生成多个tfrecord文件实例
2020/02/17 Python
python 已知平行四边形三个点,求第四个点的案例
2020/04/12 Python
win10从零安装配置pytorch全过程图文详解
2020/05/08 Python
CSS3实现可爱的小黄人动画
2016/07/11 HTML / CSS
Weekendesk意大利:探索多种引人入胜的周末主题
2016/10/14 全球购物
美国网上购买眼镜:Eyeconic
2017/07/29 全球购物
德国内衣、泳装和睡衣网上商店:Bigsize Dessous
2018/07/09 全球购物
Dogeared官网:在美国手工制作的珠宝
2019/08/24 全球购物
2014年后备干部工作总结
2014/12/08 职场文书
自主招生推荐信格式模板
2015/03/24 职场文书
考博导师推荐信范文
2015/03/27 职场文书
中考百日冲刺决心书
2015/09/22 职场文书
五年级数学教学反思
2016/02/16 职场文书
《秋天的图画》教学反思
2016/02/19 职场文书
python实现的web监控系统
2021/04/27 Python
MySql子查询IN的执行和优化的实现
2021/08/02 MySQL
MySQL 字符集 character
2022/05/04 MySQL
MySQL远程无法连接的一些常见原因总结
2022/09/23 MySQL