class Tree { var $data = array(); var $child = array(-1 => array()); var $layer = array(-1 => -1); var $parent = array(); var $countid = 0; function Tree($value='') {} function setNode($id, $parent, $value) { $parent = $parent?$parent:0; $this->data[$id] = $value; $this->child[$parent][] = $id; $this->parent[$id] = $parent; if(!isset($this->layer[$parent])) { $this->layer[$id] = 0; } else { $this->layer[$id] = $this->layer[$parent] + 1; } } function getList(&$tree, $root= 0) { if(is_array($this->child[$root] )) { foreach($this->child[$root] as $key => $id) { $tree[] = $id; if($this->child[$id]) $this->getList($tree, $id); } }else{ } } function getValue($id) { return $this->data[$id]; } function reSetLayer($id) { if($this->parent[$id]) { $this->layer[$this->countid] = $this->layer[$this->countid] + 1; $this->reSetLayer($this->parent[$id]); } } function getLayer($id, $space = false) { $this->layer[$id] = 0; $this->countid = $id; $this->reSetLayer($id); return $space?str_repeat($space, $this->layer[$id]):$this->layer[$id]; } function getParent($id) { return $this->parent[$id]; } function getParents($id) { while($this->parent[$id] != -1) { $id = $parent[$this->layer[$id]] = $this->parent[$id]; } ksort($parent); reset($parent); return $parent; } function getChild($id) { return $this->child[$id]; } function getChilds($id = 0) { $child = array(); $this->getList($child, $id); return $child; } }
相关推荐
php的无限树工具包 之前我已经写过一个无限级分类PHP包名称叫tp5-nestedsets在packagist上的安装量还是挺大的。但是tp5-nestedsets是基于tp5的很显然其灵活性不够高。而infinite-tree是一个不受框架限制的无限级分类...
所需组件C ++开发Windows SDK .NET开发人员如果安装了Cygwin , MingW或任何其他交叉解决方案,请阅读陷阱部分中的注释工具类开发包入门脚本,名为phpsdk- <crt>-<arch> .bat phpsdk_buildtree初始化开发文件系统...
PHP工具 PHP中经常使用的一些代码片段。 需要PHP 7.4 / 8.0及更高版本。 实用类班级名称功能说明 SM3加密工具 支持HMac的自定义算法 生成uuid字符串路径运算符 crc64算术工具 数组和地图数据工具 RSA crypt工具日期...
一些PHPer可能用到的插件,有自己...- 轻量级的curl请求工具,开发中pull-down -- 无限下拉jspmd --基于tp5的mysql数据字典web工具jquery_select_tree 基于jquery的无限极选择树级分类simple_curl 简单的curl方法实现2
类系统:作为Extjs 4架构更新的一部分,引用了一个功能更完整的类系统。 沙盒:在ExtJS历史上,ExjJS 4首次提供了完整的沙盒模式。从ExtJS 4开始,框架不再扩展数组或函数等原生对象,因此,与其它的框架同时加载到...
-为TreeNode增加AutoPostBack属性,增加事件数据类TreeCheckEventArgs,为Tree增加事件NodeCheck。 -示例在:http://extasp.net/data/tree_run.aspx -Grid增加GetNoSelectionAlertInParentReference函数,用来...
:palm_tree: :smiling_face_with_sunglasses: 如何使用? 通过仪表板 直接从GitHub安装插件。 ( ) 激活插件(如果已安装原始Wordpress Importer,请确保也将其停用)。 前往工具→导入 选择“ WordPress(v2)...
-为TreeNode增加AutoPostBack属性,增加事件数据类TreeCheckEventArgs,为Tree增加事件NodeCheck。 -示例在:http://extasp.net/data/tree_run.aspx -Grid增加GetNoSelectionAlertInParentReference函数,用来...
类,接口,枚举,抽象... 方法,Lambda,继承,覆盖... 替换UI图标: 工具栏图标(操作) 装订线图标(调试器) 节点图标(文件夹)... 单色滤镜:将单色滤镜设置为整个UI 能够选择颜色 箭头样式:自定义Tree...
象这样没有包含任何子元素的最后一级元素我们也称之为"页元素"。 4.Parser(解析软件) Parser是一种检查XML文档是否遵循DTD规范的工具软件。 XML的parser发展为两类:一种是"非确认类paeser",只检测文档是否遵守...