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 相关文章推荐
3.从实例开始
Oct 09 PHP
不要轻信 PHP_SELF的安全问题
Sep 05 PHP
将一维或多维的数组连接成一个字符串的php代码
Aug 08 PHP
深入Memcache的Session数据的多服务器共享详解
Jun 13 PHP
zend Framework中的Layout(模块化得布局)详解
Jun 28 PHP
Yii 快速,安全,专业的PHP框架
Sep 03 PHP
php生成随机颜色方法汇总
Dec 03 PHP
thinkphp中ajax与php响应过程详解
Dec 08 PHP
Yii中实现处理前后台登录的新方法
Dec 28 PHP
PHP购物车类Cart.class.php定义与用法示例
Jul 20 PHP
yii2实现 &quot;上一篇,下一篇&quot; 功能的代码实例
Feb 04 PHP
PHP实现的DES加密解密封装类完整实例
Apr 29 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
Php图像处理类代码分享
2012/01/19 PHP
thinkPHP中验证码的简单使用方法
2015/12/26 PHP
PDO::lastInsertId讲解
2019/01/29 PHP
利用javascript中的call实现继承
2007/01/22 Javascript
JavaScript中的Document文档对象
2008/01/16 Javascript
jquery 操作表格实现代码(多种操作打包)
2011/03/20 Javascript
Javascript 面向对象(二)封装代码
2012/05/23 Javascript
Javascript操作cookie的函数代码
2012/10/03 Javascript
node.js中的path.isAbsolute方法使用说明
2014/12/08 Javascript
javascript转换静态图片,增加粒子动画效果
2015/05/28 Javascript
js实现温度计时间样式代码分享
2015/08/21 Javascript
Javascript中的数据类型之旅
2015/10/18 Javascript
ECMA5数组的新增方法有哪些及forEach()模仿实现
2015/11/03 Javascript
JavaScript中解决多浏览器兼容性23个问题的快速解决方法
2016/05/19 Javascript
将form表单通过ajax实现无刷新提交的简单实例
2016/10/12 Javascript
JS搜狐面试题分析
2016/12/16 Javascript
微信小程序 支付功能(前端)的实现
2017/05/24 Javascript
详解如何使用webpack+es6开发angular1.x
2017/08/16 Javascript
webpack+vue中使用别名路径引用静态图片地址
2017/11/20 Javascript
浅谈微信JS-SDK 微信分享接口开发(介绍版)
2018/08/15 Javascript
typescript nodejs 依赖注入实现方法代码详解
2019/07/21 NodeJs
vue简单练习 桌面时钟的实现代码实例
2019/09/19 Javascript
[46:09]2014 DOTA2华西杯精英邀请赛 5 25 LGD VS VG第三场
2014/05/26 DOTA
解决python2.7用pip安装包时出现错误的问题
2017/01/23 Python
基于Python函数的作用域规则和闭包(详解)
2017/11/29 Python
对python程序内存泄漏调试的记录
2018/06/11 Python
python3 tcp的粘包现象和解决办法解析
2019/12/09 Python
Python用requests库爬取返回为空的解决办法
2021/02/21 Python
HTML5 UTF-8 中文乱码的解决方法
2013/11/18 HTML / CSS
英国领先的品牌珠宝和配件供应商:Acotis Jewellery
2018/03/07 全球购物
高中生学习的自我评价
2013/12/14 职场文书
成功经营餐厅的创业计划书范文
2013/12/26 职场文书
《明天,我们毕业》教学反思
2014/04/24 职场文书
仓库规划计划书
2014/04/28 职场文书
电气工程师岗位职责
2015/02/12 职场文书
2015年党建工作汇报材料
2015/06/25 职场文书