获取分类下面的所有子类方法:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
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 ; } |
用上面这个方法的前提是要把分类写到缓存文件中,缓存文件写入方法如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
public function actionIndex2() { $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 ); } |