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; } }
相关推荐
总的来说,`un-limit-tree` 类库为PHP开发者提供了一个强大的工具,用于处理无限级分类问题,简化了数据结构的管理,提高了代码的可维护性。如果你经常需要处理类似的问题,这个类库将是一个非常有价值的资源。
总的来说,**PHP AJAX Tree树形菜单 v1.0** 是一个结合了PHP后端处理和AJAX前端交互的实用工具,它能够帮助开发者快速构建功能丰富的树形菜单,适用于各种Web应用中。通过理解和运用其中的技术,可以提升Web应用的...
总的来说,这个资源提供了一种使用PHP生成无限层级分类树形结构的方法,对于需要处理这类问题的开发者来说,是一个有价值的参考资料。通过学习和实践,你不仅可以掌握如何在PHP中构建树形结构,还能增强对数据结构和...
总的来说,tabletree4J是一个强大且灵活的工具,能够帮助开发者快速构建出功能完备、层次清晰的树形菜单,尤其适合处理具有无限级分类的场景。结合其提供的示例和API文档,开发者可以高效地将其集成到自己的项目中,...
总的来说,tree-sitter-php是一个强大的工具,它将PHP的复杂语法转化为易于处理的结构,极大地提升了开发者的工作效率。无论你是进行代码维护、编写编辑器插件,还是进行代码质量分析,tree-sitter-php都能为你提供...
### 六、与其他工具的整合 结合jQuery和其他库,如Bootstrap、Angular等,可以构建更复杂的应用场景。例如,可以将JsTree嵌入到一个表单中,或者与后端框架如Spring MVC进行数据交互。 ### 七、注意事项 1. 保持...
安装完成后,你需要创建一个模型并继承自 `\Rap2hpoutre\LaravelTree\Eloquent` 或 `\Rap2hpoutre\LaravelTree\Node` 类。这个基类提供了处理嵌套集所需的所有方法,如`makeChildOf()`, `children()`, `ancestors()`...
在 `app/admin/extensions` 目录下创建一个新的目录,比如 `checkbox-tree`,并在其中创建 `.php` 文件,例如 `CheckboxTree.php`,在这个文件中编写扩展类,继承自 Laravel-Admin 的 `Form\Extensions\...
总的来说,Eloquent Tree 是一个强大的工具,能够帮助 Laravel 开发者轻松地管理和操作树状数据。结合其丰富的API,你可以创建复杂且灵活的树形结构,满足各种业务需求。在实践中,务必熟悉这些方法并根据项目需求...
Sothink Tree Menu是一款高效、易用的工具,它能帮助开发者快速构建出层次分明、功能强大的树形导航菜单,极大地提升了用户体验。下面我们将深入探讨Sothink Tree Menu的特点、功能以及如何在实际项目中应用。 首先...
例如,它可以用于展示网站的多级分类,或者在项目管理工具中表示任务的层级关系。 总结:jsTree作为一个强大的JavaScript库,以其丰富的功能、灵活的配置和易于扩展的插件系统,使得在网页中创建和管理树状结构变得...
php的无限树工具包 之前我已经写过一个无限级分类PHP包名称叫tp5-nestedsets在packagist上的安装量还是挺大的。但是tp5-nestedsets是基于tp5的很显然其灵活性不够高。而infinite-tree是一个不受框架限制的无限级分类...
标题中的"svm.rar_decision tree_tree"暗示了我们讨论的主题集中在支持向量机(SVM)和决策树这两种机器学习算法上。"svm.php"表明这是一个使用PHP编程语言实现的SVM算法代码文件。 决策树是一种广泛应用的监督学习...
在PHP编程中,无限级分类库是一个非常实用的工具,特别是在处理如文章分类、商品类别、用户组等具有层级关系的数据时。这个压缩包“php递归实现无限级分类库.zip”提供了一个PHP实现的解决方案,它允许你方便地管理...
接下来是PHP代码部分,实现无限分类通常会用到两种主要的方法:递归和层级遍历(如预排序遍历树,简称PreOrder Tree Traversal)。 1. **递归方法**: 使用递归函数,每次调用自身来处理当前分类的所有子分类。...
总的来说,DHTMLX Tree是一个功能强大、灵活的JavaScript树插件,它提供了一整套工具和方法来满足各种复杂的树形视图需求。通过深入理解和熟练运用它的API,开发者能够创建出交互性高、用户体验优良的树形界面,提升...
在这个源码中,`Tree.php`可能是实现无限分类逻辑的PHP脚本,可能包含了递归函数或者路径枚举算法来构建和操作分类树。它可能包括了添加、删除、查找和显示分类的功能。 `tvmenu.sql`是一个SQL文件,通常用于导入...
Category类库是PHP编程中用于实现无限分类的一个实用工具,它极大地简化了处理层次结构数据的复杂性。在网站或应用程序中,无限分类通常用于管理如产品目录、文章分类、用户组等,其中子类别可以无限层级地嵌套。...
`list_to_tree`是Thinkphp框架中的一个实用工具,它可以帮助我们有效地处理具有层级关系的数据,例如在创建分类、菜单等场景时。下面我们将详细解释这个过程,并给出具体的代码示例。 首先,`list_to_tree`函数的...
通过`php artisan admin:make CategoriesController --model=App\Models\Shoping\Category`命令,我们可以快速创建一个名为`CategoriesController`的控制器类,这个类继承自Laravel-admin的`AdminController`。...