Yii Framework框架获取分类下面的所有子类方法


Posted in PHP onJune 20, 2014

获取分类下面的所有子类方法:

static function getMenuTree($arrCat, $parent_id = 0, $level = 0,$all=True)
 {
  static $arrTree; //使用static代替global
  if(!$all) $arrTree ='';
  if( empty($arrCat)) return FALSE;
  $level++;
  if($level == 1) $arrTree[] = $parent_id;
  foreach($arrCat as $key => $value)
  {
   if($value['parent_cid' ] == $parent_id)
   {
    //$value[ 'level'] = $level;
    $arrTree[] = $value['cid'];
    unset($arrCat[$key]); //注销当前节点数据,减少已无用的遍历
    self::getMenuTree($arrCat, $value[ 'cid'], $level);
   }
  }
  return $arrTree;
 }

用上面这个方法的前提是要把分类写到缓存文件中,缓存文件写入方法如下:

public function actionIndex2()
 {
 $filepath = Yii::getPathOfAlias('application').'/data/';
 $arr = array();
 $db = Yii::app()->db;
 $listinfo = $db->createCommand("select name,cid,parent_cid,root_cid from item_cat_info")->queryAll();
 foreach($listinfo as $val)
 {
   $arr[$val['cid']] = array('cid'=>$val['cid'],'name'=>$val['name'],'parent_cid'=>$val['parent_cid'],'root_cid'=>$val['root_cid']);
 }

 $applist = "<?php\nreturn ".var_export($arr, true).";\n?>";
 file_put_contents($filepath.'itemcat.php', $applist);
  }
PHP 相关文章推荐
php缓存技术详细总结
Aug 07 PHP
PHP实现取得HTTP请求的原文
Aug 18 PHP
ThinkPHP中__initialize()和类的构造函数__construct()用法分析
Nov 29 PHP
浅谈PHP中单引号和双引号到底有啥区别呢?
Mar 04 PHP
Symfony2框架学习笔记之HTTP Cache用法详解
Mar 18 PHP
PHP微信支付实例解析
Jul 22 PHP
Yii框架结合sphinx,Ajax实现搜索分页功能示例
Oct 18 PHP
PHP最常用的正则表达式
Feb 13 PHP
PHP+MYSQL实现读写分离简单实战
Mar 13 PHP
php实现微信企业号支付个人的方法详解
Jul 26 PHP
php nginx 实时输出的简单实现方法
Jan 21 PHP
PHP框架Laravel中使用UUID实现数据分表操作示例
May 30 PHP
windows下配置apache+php+mysql时出现问题的处理方法
Jun 20 #PHP
PHP扩展CURL的用法详解
Jun 20 #PHP
教你如何解密 “ PHP 神盾解密工具 ”
Jun 20 #PHP
ThinkPHP3.1查询语言详解
Jun 19 #PHP
ThinkPHP3.1数据CURD操作快速入门
Jun 19 #PHP
ThinkPHP3.1.3版本新特性概述
Jun 19 #PHP
ThinkPHP访问不存在的模块跳转到404页面的方法
Jun 19 #PHP
You might like
详解WordPress中分类函数wp_list_categories的使用
2016/01/04 PHP
Zend Framework教程之Zend_Controller_Plugin插件用法详解
2016/03/07 PHP
thinkPHP自动验证机制详解
2016/12/05 PHP
利用phpexcel对数据库数据的导入excel(excel筛选)、导出excel
2017/04/27 PHP
JS 拼图游戏 面向对象,注释完整。
2009/06/18 Javascript
Jquery CheckBox全选方法代码附js checkbox全选反选代码
2010/06/09 Javascript
JQuery实现鼠标滑过显示导航下拉列表
2013/09/12 Javascript
js动态添加表格数据使用insertRow和insertCell实现
2014/05/22 Javascript
jQuery内部原理和实现方式浅析
2015/02/03 Javascript
js判断文本框剩余可输入字数的方法
2015/02/04 Javascript
JQuery显示、隐藏div的几种方法简明总结
2015/04/16 Javascript
nodejs导出excel的方法
2015/06/30 NodeJs
artDialog+plupload实现多文件上传
2016/07/19 Javascript
说说AngularJS中的$parse和$eval的用法
2017/09/14 Javascript
编写React组件项目实践分析
2018/03/04 Javascript
create-react-app修改为多页面支持的方法
2018/05/17 Javascript
详解vue 项目白屏解决方案
2018/10/31 Javascript
微信小程序实现保存图片到相册功能
2018/11/30 Javascript
Typescript的三种运行方式(小结)
2019/09/18 Javascript
layer弹窗在键盘按回车将反复刷新的实现方法
2019/09/25 Javascript
JavaScript定时器使用方法详解
2020/03/26 Javascript
JavaScript使用prototype属性实现继承操作示例
2020/05/22 Javascript
基于js实现的图片拖拽排序源码实例
2020/11/04 Javascript
python实现划词翻译
2020/04/23 Python
python使用cStringIO实现临时内存文件访问的方法
2015/03/26 Python
使用C++扩展Python的功能详解
2018/01/12 Python
Python装饰器用法示例小结
2018/02/11 Python
python实现数据分析与建模
2019/07/11 Python
python中使用while循环的实例
2019/08/05 Python
Python爬虫逆向分析某云音乐加密参数的实例分析
2020/12/04 Python
阿迪达斯英国官方网站:adidas英国
2019/08/13 全球购物
DC Shoes荷兰官方网站:美国极限运动品牌
2019/10/22 全球购物
公司员工的自我评价范例
2013/11/01 职场文书
财务工作个人求职的自我评价
2013/12/19 职场文书
2016年万圣节家长开放日活动总结
2016/04/05 职场文书
JavaScript 语句之常用 for 循环详解
2021/03/29 Javascript