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 相关文章推荐
对javascript和select部件的结合运用
Oct 09 PHP
php 短链接算法收集与分析
Dec 30 PHP
php导出word格式数据的代码实例
Nov 25 PHP
php实现memcache缓存示例讲解
Dec 04 PHP
ThinkPHP查询中的魔术方法简述
Jun 25 PHP
PHP常用技术文之文件操作和目录操作总结
Sep 27 PHP
php计算2个日期的差值函数分享
Feb 02 PHP
功能强大的PHP图片处理类(水印、透明度、旋转)
Oct 21 PHP
yii用户注册表单验证实例
Dec 26 PHP
Zend Framework教程之Zend_Db_Table_Row用法实例分析
Mar 21 PHP
老生常谈php中传统验证与thinkphp框架(必看篇)
Jun 10 PHP
PHP中in_array的隐式转换的解决方法
Mar 06 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
使用session判断用户登录用户权限(超简单)
2013/06/08 PHP
codeigniter上传图片不能正确识别图片类型问题解决方法
2014/07/25 PHP
如何将一个String和多个String值进行比较思路分析
2013/04/22 Javascript
jQuery中$.fn的用法示例介绍
2013/11/05 Javascript
JSONP获取Twitter和Facebook文章数的具体步骤
2014/02/24 Javascript
TinyMCE提交AjaxForm获取不到数据的解决方法
2015/03/05 Javascript
jquery实现可旋转可拖拽的文字效果代码
2016/01/27 Javascript
Bootstrap3 input输入框插入glyphicon图标的方法
2016/05/16 Javascript
AngularJS中比较两个数组是否相同
2016/08/24 Javascript
最全面的百度地图JavaScript离线版开发
2016/09/10 Javascript
微信小程序 icon组件详细及实例代码
2016/10/25 Javascript
浅谈angular.copy() 深拷贝
2017/09/14 Javascript
jQuery Validate插件ajax方式验证输入值的实例
2017/12/21 jQuery
JS基于对象的链表实现与使用方法示例
2019/01/31 Javascript
微信公众平台获取access_token的方法步骤
2019/03/29 Javascript
JavaScript中关于base64的一些事
2019/05/06 Javascript
解决cordova+vue 项目打包成APK应用遇到的问题
2019/05/10 Javascript
layui prompt 设置允许空白提交的方法
2019/09/24 Javascript
Vue通过WebSocket建立长连接的实现代码
2019/11/05 Javascript
html2canvas属性和使用方法以及如何使用html2canvas将HTML内容写入Canvas生成图片
2020/01/12 Javascript
Vue Element校验validate的实例
2020/09/21 Javascript
Python实现从url中提取域名的几种方法
2014/09/26 Python
python分割文件的常用方法
2014/11/01 Python
Python中用sleep()方法操作时间的教程
2015/05/22 Python
Python批量创建迅雷任务及创建多个文件
2016/02/13 Python
Python random模块用法解析及简单示例
2017/12/18 Python
对pandas replace函数的使用方法小结
2018/05/18 Python
Python爬取数据保存为Json格式的代码示例
2019/04/09 Python
Jupyter notebook快速入门教程(推荐)
2020/05/18 Python
IE8下CSS3选择器nth-child() 不兼容问题的解决方法
2016/11/16 HTML / CSS
what is the difference between ext2 and ext3
2015/08/25 面试题
企事业单位求职者的自我评价
2013/12/28 职场文书
竞聘上岗演讲稿范文
2014/01/10 职场文书
幼儿园消防演练方案
2014/02/13 职场文书
2015年卫生局工作总结
2015/07/24 职场文书
2016年社区中秋节活动总结
2016/04/05 职场文书