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中使用Oracle数据库(4)
Oct 09 PHP
一个好用的分页函数
Nov 16 PHP
php下将XML转换为数组
Jan 01 PHP
php number_format() 函数通过千位分组来格式化数字的实现代码
Aug 06 PHP
新浪SAE云平台下使用codeigniter的数据库配置
Jun 12 PHP
php通过array_merge()函数合并两个数组的方法
Mar 18 PHP
如何解决PHP无法实现多线程的问题
Sep 25 PHP
php ci 获取表单中多个同名input元素值的代码
Mar 25 PHP
Yii2中使用join、joinwith多表关联查询
Jun 30 PHP
PHP简单读取PDF页数的实现方法
Jul 21 PHP
php+ajax登录跳转登录实现思路
Jul 31 PHP
PHP实现统计所有字符在字符串中出现次数的方法
Oct 17 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 和 MySQL 基础教程(一)
2006/10/09 PHP
Windows下IIS6/Apache2.2.4+MySQL5.2+PHP5.2.1安装配置方法
2007/05/03 PHP
ThinkPHP的常用配置选项汇总
2016/03/24 PHP
理解php依赖注入和控制反转
2016/05/11 PHP
Smarty模板引擎缓存机制详解
2016/05/23 PHP
CodeIgniter集成smarty的方法详解
2016/05/26 PHP
Yii2 ActiveRecord多表关联及多表关联搜索的实现
2016/06/30 PHP
PHP封装的PDO数据库操作类实例
2017/06/21 PHP
Yii2第三方类库插件Imagine的安装和使用
2017/07/06 PHP
不要小看注释掉的JS 引起的安全问题
2008/12/27 Javascript
Javascript中找到子元素在父元素内相对位置的代码
2012/07/21 Javascript
javascript获取鼠标点击元素对象(示例代码)
2013/12/20 Javascript
javascript函数式编程程序员的工具集
2015/10/11 Javascript
JS随机打乱数组的方法小结
2016/06/22 Javascript
JS中对Cookie的操作详解
2016/08/05 Javascript
jQuery下拉菜单的实现代码
2016/11/03 Javascript
node.js连接MongoDB数据库的2种方法教程
2017/05/17 Javascript
java和js实现的洗牌小程序
2019/09/30 Javascript
在项目vue中使用echarts的操作步骤
2020/09/07 Javascript
微信小程序 接入腾讯地图的两种写法
2021/01/12 Javascript
[47:46]完美世界DOTA2联赛 Magma vs GXR 第三场 11.07
2020/11/10 DOTA
Django 跨域请求处理的示例代码
2018/05/02 Python
Python Web框架之Django框架文件上传功能详解
2019/08/16 Python
Python使用itchat模块实现简单的微信控制电脑功能示例
2019/08/26 Python
Python多进程编程multiprocessing代码实例
2020/03/12 Python
聊聊python中的异常嵌套
2020/09/01 Python
python中numpy.empty()函数实例讲解
2021/02/05 Python
html5+css3气泡组件的实现
2014/11/21 HTML / CSS
英国领先的运动营养品牌:Protein Dynamix
2018/01/02 全球购物
学生处主任岗位职责
2013/12/01 职场文书
2014年健康教育实施方案
2014/02/17 职场文书
建议书的格式
2014/05/12 职场文书
董事长助理工作职责范本
2014/07/01 职场文书
机械制造专业大学生自我鉴定
2014/09/19 职场文书
vue基于Teleport实现Modal组件
2021/05/31 Vue.js
nginx location 带斜杠【 / 】与不带的区别
2022/04/13 Servers