草庐IT

php - 如何对数组元素进行分组?

我有一组文件夹/路径:$arr=Array(0=>Array('name'=>'aaa'),1=>Array('name'=>'aaa\bbb'),2=>Array('name'=>'aaa\bbb\ccc'),3=>Array('name'=>'ddd'));我想将其转换为多维(树状)数组(保持结构:索引/键和值/名称):aaabbbcccddd有什么建议吗? 最佳答案 尝试:$arr=array(array('name'=>'aaa'),array('name'=>'aaa\bbb'),array('name'=>'aaa\bb

PHP wordpress 获取类别对象的多维数组

我正在尝试将我的wordpress上的所有类别作为类别类型对象的分层多维数组。wordpress中有2个函数可以满足我的要求,但不完全是:1)get_categories()-这个确实返回类别对象数组,这很好,但是数组是扁平的,其中没有区分哪个类别是父类别或哪个类别是子类别。2)wp_list_categories()-它可以完整地返回类别,但问题是返回值是html,我需要类别仍然是对象。例如,如果我有以下3棵树作为我的无父类别:/*tree_stumptree1branch1tree2branch2twig2leaves2flowers2fruits2*/我正在尝试获取可能类似于以下

php - 单表的邻接树

我读过很多人讨论嵌套列表,但我想知道如何在PHP中遍历邻接列表/树。我有一张表:id、title、parent_id我已经选择了所有记录到一个名为$pages的数组中。然后使用这个php:functionmakeList($pages,$used){if(count($pages)){echo"";foreach($pagesas$page){echo"".$page['pag_title'];$par_id=$page['pag_id'];$subsql("SELECT*FROMpagesWHEREpag_parent=".$par_id."");//runningthenewsql

php - 数据库树到多维数组

我有一个带有parentid的简单数据库树,我想读取数据库并得到一个像上面那样的数组Array(Title:Category1Children=>Array(=>Title:Category1.1=>Title:Category1.2Children=>Array(=>Title:Category1.2.1)))我尝试用上面的代码实现functiongetTree($rootid){$result==mysql_query("select*fromtreewhereparentid='$rootid'");while($row=mysql_fetch_array($result)){$

PHP 代码一直有效,直到我将它变成一个函数

我这里有这段代码,它给了我正在寻找的结果,一个格式良好的值树。$todos=$this->db->get('todos');//storetheresultingrecords$tree=array();//emptyarrayforstorage$result=$todos->result_array();//storeresultsasarraysforeach($resultas$item){$id=$item['recordId'];$parent=$item['actionParent'];$tree[$id]=isset($tree[$id])?$item+$tree[$i

php - 在多维数组中搜索键然后使用 PHP 更改值

我有一个看起来像这样的多维数组[0]=>Array([recordId]=>5[leaf]=>1[children]=>Array([0]=>Array([recordId]=>6[leaf]=>1[children]=>Array([0]=>Array([recordId]=>7[leaf]=>1)))[1]=>Array([recordId]=>8[leaf]=>1[children]=>Array([0]=>Array([recordId]=>9[leaf]=>1)[1]=>Array([recordId]=>10[leaf]=>1)))))每个节点都有一个默认为TRUE的“叶”

PHP:递归获取父级的子级

我有一个函数可以从我的数据库中获取父项的所有子项的ID。因此,如果我查找id7,它可能会返回一个包含5、6和10的数组。然后我想做的是递归地找到那些返回的id的child,依此类推,直到child的最终深度。我曾尝试编写一个函数来执行此操作,但我对递归感到困惑。functiongetChildren($parent_id){$tree=Array();$tree_string;if(!empty($parent_id)){//getOneLevel()returnsaone-dimentionalarrayofchildids$tree=$this->getOneLevel($pare

php - 在 CakePHP 中手动构建树

我目前正在使用CakePHP构建一个应用程序。有一个相当广泛的现有数据集,它在概念上是一棵树,但以前没有作为一个树存储。我的意思是,数据中没有定义真正的关系。我遇到的问题是让它与CakePHP树行为一起正常工作。因为我必须在现有数据上设置所有值——而不是Cake在插入元素时设置结构——我需要了解lft/rght值是如何工作的。所以,我想问题是:结构数据如何工作,特别是左/右值?我如何设置它以便数据合理地输出,而不是一次插入一个?这是一个2级树,包含部分和子部分。感谢帮助 最佳答案 MPTT树逻辑相当简单,在ManagingHiera

php - PHP 中的广度优先搜索

我的表结构是:idnameparentlftrgt1abc0232def1453geh1674ijk2895lmn21011我正在做的是首先获取所有记录,然后使用深度优先搜索(DFS)在树中搜索所有可能的child。publicfunctionfetchRecursive($src_arr,$currentId,$parentFound=false){$cats=array();foreach($src_arras$row){if((!$parentFound&&$row['id']==$currentId)||$row['parent']==$currentId){$rowData=

php - Stof 学说扩展 :Tree lvl doesn't update

我在这里问这个问题是因为我在github上没有答案。我正在使用嵌套的树注释,并且据说当一个人像这样保存一个$food对象时:$food->setParent($vegetables);parent、lvl和root的更新正确完成。然而,由于我更新到Symfony2.5,lvl的更新不再起作用,它保持在0,使得这个树扩展无用。我什至不能强制它(如果我在坚持之前手动更改lvl,在刷新lvl回到0之后)...有没有人遇到同样的问题? 最佳答案 如果不查看您的更多代码,就很难准确判断问题出在哪里。但是我建议您尝试以下方法:$foodRepo