宝哥软件园

php无限分类且支持输出树状图的详细介绍

编辑:宝哥软件园 来源:互联网 时间:2021-11-18

复制代码代码如下:php/***通用的树型类,可以生成任何树型结构*/类别树{ /** *生成树型结构所需要的2维数组* @ var array */var $ arr=array();/** * 生成树型结构所需修饰符号,可以换成图片* @var数组*/var $ icon=array('','','');/* * * @ access private */var $ ret=' ';/** * 构造函数,初始化类* @param数组2维数组,例如:* array(* 1=array('id'='1 ',' parentid'=0,' name'='一级栏目一),* 2=数组(' id'='2 ',' parentid'=0,' name'='一级栏目二),* 3=数组(' id'='3 ',' parentid'=1,' name'='二级栏目一),* 4=数组(' id'='4 ',' parentid'=1,' name'='二级栏目二),* 5=数组(' id'='5 ',' parentid'=2,' name'='二级栏目三),* 6=数组(' id'='6 ',' parentid'=3,' name'='三级栏目一),* 7=数组(' id'='7 ',' parentid'=3,' name'='三级栏目二)* ) */功能树($ arr=array()){ $ this-arr=$ arr;$ this-ret=' ';返回is _ array($ arr);} /** * 得到父级数组* @ param int * @ return array */function get _ parent($ myid){ $ newarr=array();if(!isset($this-arr[$myid])返回false$ PID=$ this-arr[$ myid]['父id '];$ PID=$ this-arr[$ PID]['父id '];if(is _ array($ this-arr)){ foreach($ this-arr as $ id=$ a){ if($ a[' parent id ']==$ PID)$ Newar[$ id]=$ a;} }返回$ Newar }/* * *得到子级数组* @ param int * @ return array */function get _ child($ myid){ $ a=$ newarr=array();if(is _ array($ this-arr)){ foreach($ this-arr as $ id=$ a){ if($ a[' parent id ']==$ myid)$ Newar[$ id]=$ a;} }返回$ newarr?$ Newar : false }/* * *得到当前位置数组* @ param int * @ return array */函数get _ pos($ myid,$ Newar){ $ a=array();if(!isset($this-arr[$myid])返回false $ Newar[]=$ this-arr[$ myid];$ PID=$ this-arr[$ myid]['父id '];if(isset($ this-arr[$ PID]){ $ this-get _ pos($ PID,$ Newar } if(is _ array($ Newar)){ krsort($ Newar);foreach($ new err as $ v){ $ a[$ v[' id ']]=$ v;} }返回$ a;} /** * - * 得到树型结构*-* @作者午夜(杨云洲),[emailprotected] * @param $myid表示获得这个身份下的所有子级* @param $str生成树形结构基本代码,例如":"选项值= $ id $ select $ spacer $ name/option ' * @ param $ sid被选中的身份证,比如在做树形下拉框的时候需要用到* @ param $ add * @ param $str _ group * @ return unknown _ type */function get _ tree($ myid,$ str,$sid=0,$ add=' ',$ str _ group=' '){ $ number=1;$ child=$ this-get _ child($ myid);if(is _ array($ child)){ $ total=count($ child);foreach($ child as $ id=$ a){ $ j=$ k=' ';if($ number==$ total){ $ j .=$ this-icon[2];} else { $ j .=$ this-icon[1];$ k=$ adds?$ this-icon[0]: " ";} $ spacer=$ adds?$ adds .$ j :$selected=$id==$sid?选定的":";@ extract($ a);$parentid==0 $str_group?eval(' $ nstr= ' $ str _ group ';'): eval(' $ nstr= ' $ str ';');$这个-ret .=$ nstr$this-get_tree($id,$str,$sid,$ adds .$k ',$ str _ group);$ number} }返回$ this-ret;} /** * 同上一方法类似,但允许多选*/function get_tree_multi($myid,$str,$sid=0,$ add=' '){ $ number=1;$ child=$ this-get _ child($ myid);if(is _ array($ child)){ $ total=count($ child);foreach($ child as $ id=$ a){ $ j=$ k=' ';if($ number==$ total){ $ j .=$ this-icon[2];} else { $ j .=$ this-icon[1];$ k=$ adds?$ this-icon[0]: " ";} $ spacer=$ adds?$ adds .$ j :$selected=$this-have($sid,$id)?选定的":";//echo $sid .'='.$id .' : '.$已选择. br/';@ extract($ a);eval(' $ nstr= ' $ str ';');$这个-ret .=$ nstr$this-get_tree_multi($id,$str,$sid,$ adds .$ k ' ');$ number} }返回$ this-ret;}函数有($list,$item){ return(strpos(',').$列表。',',','.$item.”,'));}}?

更多资讯
游戏推荐
更多+