*因为我需要通过父id由父继子遍历该父子数组,并且每次都需要对该记录提供层级,所以传入了三个参数,分别是父子集合,父id,该层级
function genCate($data,$pid=0,$level=0){
if($level==10) break;
static $tarr=array();//定义静态全局变量以用来存放结果数组
$l=str_repeat(" ",$level);//根据level层级输出层级标记
$l=$l.'└';
foreach($data as $row){
if($row['parentid']==$pid){
//因为我从父级开始遍历,所以以父之名,带入参数从没有父的(即为0)开始,pid参数不断向下传递(因为当前记录的父和传入一致,即当前记录为上级子)
$row['name']=$l.$row['name'];//将当前记录名修改成具有层级结构的记录名
$row['level']=$level;
$tarr[]=$row;//将这种具有层级结构的记录存放至存放数组中
self::genCate($data,$row['id'],$level+1);//递归调用,从父一直往下找,0为父开始,遍历第一条父,递归调用该id,将该id为父去检索,得出子项
return $tarr;
<section>
foreach($tarr as $key => $value){
$opstr.='<option value="'.$value['fid'].'">'.$value['foldername'].'</option>';
</section>
显示效果如下:
$a=array('fruits'=>array('a'=>'orange',
'b'=>'grape',c=>'apple'),
'numbers'=>array(1,2,3,4,5,6),
'holes'=>array('first',5=>'second','third')
foreach($a as $list=>$things){
if(is_array($things)){
foreach($things as $newlist=>$counter){
echo "
二叉
树
tree 如图所示:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传根节点 root节点(所有节点由它开始,它没有父节点,只有孩子节点)节点的度:节点拥有子
树
的个数
树
的度:一棵
树
中所有节点的度的最大值叶子节点:度为0的节点,没有子
树
的节点,终端节点(A,D,F,G)分支节点:度不为0的节点,非终端节点(D,C,E)兄弟节点:拥有同一个父节点的节点(D和E,以及F和G都是兄...
搜索热词本文实例讲述了
PHP
遍历
树
的常用方法。分享给大家供大家参考。具体如下:一、递归的深度优先的算法:
PHP
;">
PHP
define('DS',DIRECTORY_SEPARATOR);function rec_list_files($from = '.'){if(!is_dir($from)) {return array();}$files = array();if($dh = open...
在实际开发中,有一种数据是类型,它存在
父子
关系,比如京东商城中,商品的分类有家用电器和服饰鞋帽,家用电器下边有大家电和家用电子,然后他们下边还有子类。而且这类
父子
关系有时深度是不确定的,本文用下面的方法,将所有类似分类的结点创建成一棵
树
并
遍历
打印他们。
1.结点要实现下面的接口:
我不认为你应该进入对象.另外我认为生成对象等只是额外的工作.在我看来,你应该
遍历
数组并生成一个代表导航层次
结构
的多维数组,然后递归循环生成的数组以生成HTML.我已经为你做了一个示例代码,它按你想要的方式工作,但你可能想做一些改变.功能// Generate your multidimensional array from the linear arrayfunction GenerateNavA...
function get_cls($cid){$arr = array(1 => array('id'=>'1','parentid'=>0,'name'=>'一级栏目一'),2 => array('id'=>'2','parentid'=>0,'name'=>'一级栏目二'),3 => array('id'=>'3','parenti...
在最近的项目中,我需要从数据库中挑选出带有层级关系的数据,并根据记录的parent_id构建数据之间的
父子
关系,最终形成一个
树
状
结构
的
父子
孙关系
结构
,并用数组的形式保存起来。经过搜索和研究,最终找到了下方的算法代码,仅做参考。首先,查询得到的数据以数组的形式返回:array(array('id' => 5,'parent_id' => 0,...),array('id' => 9...
前序
遍历
、中序
遍历
和后序
遍历
。这些
遍历
方式可以用来对
树
进行深度优先搜索(Depth-First Search),根据具体的需求选择不同的
遍历
方式。在实际应用中,还有广度优先搜索(Breadth-First Search)等其他
树
遍历
算法。
php
无限分类之父级分类和子分类的追溯方法,代码片段如下://返回所有的叶子节点public function scanNodeOfTree($result,$fid){$checkexist = false;for ($i=0; $iif($fid == $result[$i]['ParentId']){$checkexist = true;$arr .= $this->scanNode...
树形结构
是项目开发中常常用到的一种
结构
,也是一种经典的数据
结构
,比如说常见的二叉
树
,红黑
树
等,今天要说的不是基础的数据
结构
,是业务中用到的
树
形数据
结构
。
先来看看业务是什么吧!
如这张图,上图中的每一个节点都是可以独立发送消息的,而其消息内容就是节点中的条件1和条件2并且加上其所有的祖籍节点的条件信息。怎样
遍历
整颗
树
呢?我是通过三层for循环实现的。
先看从数据库中查出的数组的详细情况:
数组中总共有6条数据,每条数据中有当前节点的id对应上图中的serialNumber 和当前
php
查找子分类下所有父集分类function get_parent_id($cid){
global $db;
$pids = ''; $parent_id = $db -> getOne("select parent_id from eload_category where cat_id = '".$cid."'");
if( $parent_id != '' )
我有一个具有
父子
关系的多维数组。我想将其显示为以适当顺序表示其父母的数值列表。Array([0] => Array([name] => Category 1[id] => 6[children] => Array([0] => Array([name] => Category 2[id] => 7[children] => Array([0] =&g...