草庐IT

php - 如何列出一棵树的所有部分树

让我们首先列出我看过的和不要找的东西我不想列出数组中的所有排列-GetallpermutationsofaPHParray?我不想从数组中按顺序查找所有组合-https://stackoverflow.com/a/38871855/1260548上面的两个例子让我走到了现在的位置,但我仍然生成了太多的组合。有了50个节点,我最终得到了数十亿甚至数万亿的组合,我认为我可以使用树结构进一步减少它。我正在寻找的是树中所有可能的有序组合,这些组合可以像这样构造为多维数组[1]--[2]--[4][8]--[3]--[9]----[5][6][7]我要查找的是所有可能的开放节点(甚至叶/端节点都

php - 从 URL 构建数组树

我需要根据给定的url构建一棵树(带有数组)。我有以下网址列表:http://domain.com/a/a.jsphttp://domain.com/a/b/a.jsphttp://domain.com/a/b/b.jsphttp://domain.com/a/b/c.jsphttp://domain.com/a/c/1.jsphttp://domain.com/a/d/2.jsphttp://domain.com/a/d/a/2.jsp现在我需要这样的数组:domain.comaa.jspba.jspb.jspc.jspc1.jspd2.jspa2.jsp我怎样才能用php做到这一点

php - 如何在PHP中将这个MPTT数组转换成树结构?

我在数据库中有分层数据,存储在ModifiedPreorderTreeTraversal中格式。我在查询中提取数据,该查询类似于“SELECTID,Left,Right,Name,etcFROMTableORDERBYLeft;"。我正在尝试将此数据从DB给我的平面数组转换为树结构,然后我将使用PHP的json_encode函数将其输出为JSON。不过,我无法让我的树结构代码在第一层之外工作。这是一个最小的测试用例:0&&$stack[count($stack)-1]['Right']0){$stack[count($stack)-1]['Children'][]=$project;e

php - 有两个表的邻接表模型

所以我认为我的问题归结为两个问题:当树存储在MySQL中(在两个表之间)时,如何使用邻接列表模型方法在PHP中构建可遍历树结构,同时牢记性能?有什么可维护的方法可以以所需的格式显示树,而不用重复遍历代码和用if/else和switch语句乱扔逻辑?下面是更多细节:我正在使用Zend框架。我正在处理问卷。它存储在两个单独表之间的MySQL数据库中:questions和question_groups。每个表扩展适当的Zend_Db_Table_*类。层次结构使用邻接列表模型方法表示。我意识到我遇到的问题很可能是因为我将树结构填充到RDBMS中,所以我对替代方案持开放态度。但是,我还存储了调

php - 如何使用 doctrine 在单个查询中获取整棵树?

此片段来自officialwebsite按预期工作:$treeObject=Doctrine::getTable('Category')->getTree();$rootColumnName=$treeObject->getAttribute('rootColumnName');foreach($treeObject->fetchRoots()as$root){$options=array('root_id'=>$root->$rootColumnName);foreach($treeObject->fetchTree($options)as$node){echostr_repeat(

php - 计算嵌套数组树中的叶子数

我有一个嵌套数组树,它是从具有以下函数的平面数组生成的:functionconvertToTree(array$flat,$idField='id',$parentIdField='parentId',$childNodesField='childNodes'){$indexed=array();//firstpass-getthearrayindexedbytheprimaryidforeach($flatas$row){$indexed[$row[$idField]]=$row;$indexed[$row[$idField]][$childNodesField]=array();}

PHP:如何在数组中填充目录结构

我正在开发一个管理面板,显示服务器上特定位置的目录结构。我有一个递归php函数,它遍历每个文件和文件夹。我想不通的是如何将此目录结构存储在这样的php关联数组中:array[foldername1][0]=file;//ifthefoldername1containsafilearray[foldername1][foldername2][0]=file//iffoldername1containsanotherfolder(foldername2)alongwiththefile.我要遵循的规则是;文件夹应该始终是一个键,文件应该始终位于这样的索引中:array[folder1][f

php - 如何恢复根节点

使用symfony2和doctrine2与doctrine树扩展,我最近更新了一个实体,使它成为一个doctrine嵌套集树。条令架构更新强制添加了带有空数据的正确列。然后我运行了下面的代码:$repo=$this->getDoctrine()->getRepository('AppBundle:FoodAnalytics\Recipe');$repo->verify();//canreturnTRUEiftreeisvalid,orarrayoferrorsfoundontree$repo->recover();$this->flush();//important:flushreco

php - 使用php构建概率树?

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Permutations-allpossiblesetsofnumbers我有一个包含选项列表的数组,每个选项都是唯一的,不能重复。我想使用这些选项构建概率树:$options=array('1','2','3','4','A','E','I','O');所以一个有效行可以是1-2-E-3-O-I-4-A我该怎么做?(或者至少给我指出正确的方向!)

php - 第 332 行的 fatal error : Call to a member function getId() on a non-object in C:\wamp\www\magentno\lib\Varien\Data\Tree\Dbp. php

我正在使用Magento1.8.0.0,我通过本地主机在WAMP服务器上安装了一个测试版本,当我想添加类别时,出现下一个错误:fatalerror:在C:\wamp\www\magentno\lib\Varien\Data\Tree\Dbp.php中的非对象上调用成员函数getId()第332行我还没有开店,因为我需要那个类别。我已经在出现错误的行中添加了tryandcatch代码。这是给出错误的代码:publicfunctionloadEnsuredNodes($category,$rootNode){$pathIds=$category->getPathIds();$rootNod