这是我能够带来的似乎工作得很好的东西.

PS-对不起格式化,无法搞清楚:((修复?)

>我从MYSQL中获取了我的parent_id和id并将其放入arraly,其中数组键是id,值是父类,因此在mysql的while循环中,类似这样:$testarray [$id] = $PARENT_ID;

>然后我通过下面的函数运行它,并命令它我需要它.

function retrieveSubTree($parent, $myarray) {

$tempArray = $myarray;

$array = array();

//now we have our top level parent, lets put its children into an array, yea!

while ($child = array_search($parent, $tempArray)) {

unset($tempArray[$child]);

//now lets get all this guys children

if (in_array($child, $tempArray)) {

$array[$child] = retrieveSubTree($child, $tempArray);

} else {

$array[$child] = true;

}

}//end while

return (!empty($array)) ? $array : false;

}

function retrieveTree($myarray) {

$array = array();

$counter = 0;

foreach ($myarray as $key => $value) {

$child = $key;

$parent = $value;

//if this child is a parent of somebody else

if (in_array($child, $myarray) && $parent != '0') {

while ($myarray[$parent] != '' && $myarray[$parent] != '0') {

$newparent = $myarray[$parent];

$parent = $newparent;

}

if (!array_key_exists($parent, $array)) {

$array[$parent] = retrieveSubTree($parent, $myarray);

}

} else {

//now make sure they don't appear as some child

if (!array_key_exists($parent, $myarray)) {

//see if it is a parent of anybody

if (in_array($child, $myarray)) {

$array[$child] = retrieveSubTree($child, $myarray);

} else {

$array[$child] = true;

}

}//end if array key

}//end initial in array

}//end foreach

return (!empty($array) ? $array : false);

}

$test = array(

'1'=>'15',

'2'=>'1',

'3'=>'1',

'4'=>'0',

'5'=>'0',

'6'=>'4',

'7'=>'6',

'8'=>'7',

'9'=>'2',

'10'=>'9'

);

print_r(retrieveTree($test));

php 父子id,父子关系PHP / MYSQL相关推荐

  1. 多表关系介绍 mysql

    多表关系介绍 mysql 关注表与表之间的关系 一对一关系 一个人只有一个身份证 一个身份证只对应一个人 一对多关系(或者说 多对一关系) 一个部门有多个员工 一个员工只能对应一个部门 多对多关系 一 ...

  2. mysql自增id原理_《MySQL自增ID》告诉你不为人知的“秘密”......

    原标题:<MySQL自增ID>告诉你不为人知的"秘密"...... 作者:Sunshine Koo 1.概述 " MySQL数据库是最常使用的数据库之一,我们 ...

  3. Mybatis selectKey获取自增ID(DB2/Sybase/MySQL/Oracle/达梦)

    Mybatis selectKey获取自增ID(DB2/Sybase/MySQL/Oracle/达梦) 1.selectKey 2.不同数据库写法 2.1 DB2 2.2.Sybase 2.3 MyS ...

  4. Spring父子容器的关系分析--用实例说话

    Spring中父子容器的实现实例Spring的父子容器可以通过ConfigurableApplicationContext或ConfigurableBeanFactory来实现,这两个接口中分别有se ...

  5. elasticsearch的父子_elasticsearch父子关系(官方)实际使用中的一些建议

    当文档索引性能远比查询性能重要的时候,父子关系是非常有用的,但是它也是有巨大代价的.其查询速度会比同等的嵌套查询慢5到10倍! 全局序号和延迟 父子关系使用了全局序数来加速文档间的联合.不管父子关系映 ...

  6. 11 父子组件数据关系与状态提升

    含义 状态提升:两个组件(无父子关系)共享一个数据并且同步数据变化 类组件调用(实例化)的时候,组件内部的状态是唯一且独立的 组件嵌套与调用,和是类组件(render)还是函数组件(直接return) ...

  7. 进程之父子进程的关系

    转载:https://blog.csdn.net/qq_28840229/article/details/79844763 fork之后: 父子相同处: 全局变量..data..text.栈.堆.环境 ...

  8. Spring容器父子类继承关系交给spring容器管理采用@autowired自动装配分析

    第一个青春是上帝给的 第二个的青春是靠自己努力的. 在开发项目过程中开发者们可能会遇到这样的问题 @autowired自动装配模式的工作模式是:在springIOC定位所有的Bean后,这个字段需要按 ...

  9. python多个程序的线程id相同吗_Python连载37-多进程、进程子类、进程父子id

    一.线程替代方案 1.subprocess (1)完全跳过线程,使用进程 (2)是派生进程的主要替代方案 (3)python2.4后引入 2.multiprocessing (1)使用threadin ...

  10. 二叉树的父子节点位置关系

    最近在看一个堆排序的时候,发现其中一行代码涉及到二叉树的位置关系 一个节点的左节点是其父节点下标的2k+1,右节点是其父节点下标的2K+2. 由于很久没复习过数据结构,突然很好奇这个结论的证明(虽然以 ...

最新文章

  1. 假如AI也会diss人类,他们会这样.....
  2. 332. 重新安排行程(回溯算法)
  3. 网络安全01-网络安全入坑
  4. GitHub 标星 11000+,阿里开源微服务如何连续 10 年扛住双十一大促
  5. echarts.js:1136 Uncaught Error: Initialize failed: invalid dom.
  6. 测试Lock锁-可重入锁(Java)
  7. 数据分析在商业中的作用
  8. 韩顺平细说jsp购物车项目--用户登录及验证
  9. HTTPS自动延期证书申请
  10. SpringBoot中配置文件dev、test、和prod各自代表什么意思?
  11. Apple Store教育优惠(161103)
  12. Java开发从零开始!java游戏服务器开发教程
  13. 黑客利用2012伦敦奥运诈骗个人资料
  14. 不同分辨率标准,720p 1080p 2k 4k HD FHD UHD
  15. 微信小程序的废品回收类程序 垃圾回收app#毕业设计
  16. Windows MongoDB 安装及配置
  17. c++使用hiredis库操作redis讲解
  18. 想学3D建模,去哪儿学比较好
  19. 分享3个一键抠图的免费方法,无需额外下载任何软件
  20. 2021年专升本考试政策什么时候发布?发布前该准备什么?

热门文章

  1. Hadoop 开源调度系统zeus
  2. 长治a货翡翠,永州a货翡翠
  3. MapReduce实现WordCount
  4. oracle wm_concat(column)函数的使用
  5. paip.微信菜单直接跳转url和获取openid流程总结
  6. Silverlight 5 RC新特性探索系列:15.Silverlight 5 RC 对OpenType字体属性的支持
  7. idea toolbar靠右显示
  8. postman传各种类型的数组格式
  9. HDU-2063-过山车(最大匹配)
  10. ifconfig: command not found(CentOS专版,其他的可以参考)