php 父子id,父子关系PHP / MYSQL
这是我能够带来的似乎工作得很好的东西.
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相关推荐
- 多表关系介绍 mysql
多表关系介绍 mysql 关注表与表之间的关系 一对一关系 一个人只有一个身份证 一个身份证只对应一个人 一对多关系(或者说 多对一关系) 一个部门有多个员工 一个员工只能对应一个部门 多对多关系 一 ...
- mysql自增id原理_《MySQL自增ID》告诉你不为人知的“秘密”......
原标题:<MySQL自增ID>告诉你不为人知的"秘密"...... 作者:Sunshine Koo 1.概述 " MySQL数据库是最常使用的数据库之一,我们 ...
- 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 ...
- Spring父子容器的关系分析--用实例说话
Spring中父子容器的实现实例Spring的父子容器可以通过ConfigurableApplicationContext或ConfigurableBeanFactory来实现,这两个接口中分别有se ...
- elasticsearch的父子_elasticsearch父子关系(官方)实际使用中的一些建议
当文档索引性能远比查询性能重要的时候,父子关系是非常有用的,但是它也是有巨大代价的.其查询速度会比同等的嵌套查询慢5到10倍! 全局序号和延迟 父子关系使用了全局序数来加速文档间的联合.不管父子关系映 ...
- 11 父子组件数据关系与状态提升
含义 状态提升:两个组件(无父子关系)共享一个数据并且同步数据变化 类组件调用(实例化)的时候,组件内部的状态是唯一且独立的 组件嵌套与调用,和是类组件(render)还是函数组件(直接return) ...
- 进程之父子进程的关系
转载:https://blog.csdn.net/qq_28840229/article/details/79844763 fork之后: 父子相同处: 全局变量..data..text.栈.堆.环境 ...
- Spring容器父子类继承关系交给spring容器管理采用@autowired自动装配分析
第一个青春是上帝给的 第二个的青春是靠自己努力的. 在开发项目过程中开发者们可能会遇到这样的问题 @autowired自动装配模式的工作模式是:在springIOC定位所有的Bean后,这个字段需要按 ...
- python多个程序的线程id相同吗_Python连载37-多进程、进程子类、进程父子id
一.线程替代方案 1.subprocess (1)完全跳过线程,使用进程 (2)是派生进程的主要替代方案 (3)python2.4后引入 2.multiprocessing (1)使用threadin ...
- 二叉树的父子节点位置关系
最近在看一个堆排序的时候,发现其中一行代码涉及到二叉树的位置关系 一个节点的左节点是其父节点下标的2k+1,右节点是其父节点下标的2K+2. 由于很久没复习过数据结构,突然很好奇这个结论的证明(虽然以 ...
最新文章
- 假如AI也会diss人类,他们会这样.....
- 332. 重新安排行程(回溯算法)
- 网络安全01-网络安全入坑
- GitHub 标星 11000+,阿里开源微服务如何连续 10 年扛住双十一大促
- echarts.js:1136 Uncaught Error: Initialize failed: invalid dom.
- 测试Lock锁-可重入锁(Java)
- 数据分析在商业中的作用
- 韩顺平细说jsp购物车项目--用户登录及验证
- HTTPS自动延期证书申请
- SpringBoot中配置文件dev、test、和prod各自代表什么意思?
- Apple Store教育优惠(161103)
- Java开发从零开始!java游戏服务器开发教程
- 黑客利用2012伦敦奥运诈骗个人资料
- 不同分辨率标准,720p 1080p 2k 4k HD FHD UHD
- 微信小程序的废品回收类程序 垃圾回收app#毕业设计
- Windows MongoDB 安装及配置
- c++使用hiredis库操作redis讲解
- 想学3D建模,去哪儿学比较好
- 分享3个一键抠图的免费方法,无需额外下载任何软件
- 2021年专升本考试政策什么时候发布?发布前该准备什么?
热门文章
- Hadoop 开源调度系统zeus
- 长治a货翡翠,永州a货翡翠
- MapReduce实现WordCount
- oracle wm_concat(column)函数的使用
- paip.微信菜单直接跳转url和获取openid流程总结
- Silverlight 5 RC新特性探索系列:15.Silverlight 5 RC 对OpenType字体属性的支持
- idea toolbar靠右显示
- postman传各种类型的数组格式
- HDU-2063-过山车(最大匹配)
- ifconfig: command not found(CentOS专版,其他的可以参考)