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 相关文章推荐
计数器详细设计
Oct 09 PHP
PHP include_path设置技巧分享
Jul 03 PHP
PHP数组排序函数合集 以及它们之间的联系分析
Jun 27 PHP
php调用Google translate_tts api实现代码
Aug 07 PHP
一个图片地址分解程序(用于PHP小偷程序)
Aug 23 PHP
smarty缓存用法分析
Dec 16 PHP
php操作memcache缓存方法分享
Jun 03 PHP
Yii2数据库操作常用方法小结
May 04 PHP
PHP实现的mysql操作类【MySQL与MySQLi方式】
Oct 07 PHP
原生JS实现Ajax通过GET方式与PHP进行交互操作示例
May 12 PHP
phpcmsv9.0任意文件上传漏洞解析
Oct 20 PHP
浅谈如何提高PHP代码质量之单元测试
May 28 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
应用开发中涉及到的css和php笔记分享
2011/08/02 PHP
PHP开发框架kohana3 自定义路由设置示例
2014/07/14 PHP
PHP实现将textarea的值根据回车换行拆分至数组
2015/06/10 PHP
PHPMAILER实现PHP发邮件功能
2018/04/18 PHP
用JS操作FRAME中的IFRAME及其内容的实现代码
2008/07/26 Javascript
Extjs TriggerField在弹出窗口显示不出问题的解决方法
2010/01/08 Javascript
form表单只提交数据而不进行页面跳转的解决方案
2013/09/18 Javascript
当鼠标滑过文本框自动选中输入框内容的JS代码分享
2013/11/26 Javascript
js验证上传图片的方法
2015/05/12 Javascript
JavaScript动态改变div属性的实现方法
2015/07/22 Javascript
BootStrap中Datetimepicker和uploadify插件应用实例小结
2016/05/26 Javascript
js前端面试题及答案整理(一)
2016/08/26 Javascript
vue下的@change事件的实现
2019/10/25 Javascript
Vue常用的全选/反选的示例代码
2020/02/19 Javascript
Vue2.x和Vue3.x的双向绑定原理详解
2020/11/05 Javascript
[01:06:42]VP vs NewBee Supermajor 胜者组 BO3 第二场 6.5
2018/06/06 DOTA
Python编程中的文件读写及相关的文件对象方法讲解
2016/01/19 Python
python使用HTMLTestRunner导出饼图分析报告的方法
2019/12/30 Python
Python多线程实现支付模拟请求过程解析
2020/04/21 Python
Pytorch十九种损失函数的使用详解
2020/04/29 Python
利用python实现平稳时间序列的建模方式
2020/06/03 Python
在keras中model.fit_generator()和model.fit()的区别说明
2020/06/17 Python
python判断一个变量是否已经设置的方法
2020/08/13 Python
Python爬虫实例之2021猫眼票房字体加密反爬策略(粗略版)
2021/02/22 Python
html5+svg学习指南之SVG基础知识
2014/12/17 HTML / CSS
Ray-Ban雷朋太阳眼镜英国官网:Ray-Ban UK
2019/11/23 全球购物
自然健康的概念:Natural Healthy Concepts
2020/01/26 全球购物
vue+django实现下载文件的示例
2021/03/24 Vue.js
高级方案规划工程师岗位职责
2013/11/29 职场文书
管道维修工岗位职责
2013/12/27 职场文书
协议书范本
2014/04/23 职场文书
2014党员干部四风问题对照检查材料思想汇报
2014/09/24 职场文书
男方婚礼答谢词
2015/01/20 职场文书
感恩教育主题班会
2015/08/12 职场文书
Python绘画好看的星空图
2022/03/17 Python
华为HarmonyOS3.0强在哪? 看看鸿蒙3.0这7个小功能
2023/01/09 数码科技