Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/253.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 关于父/子数组关系_Php_Arrays_Loops_Parent - Fatal编程技术网

Php 关于父/子数组关系

Php 关于父/子数组关系,php,arrays,loops,parent,Php,Arrays,Loops,Parent,这是我的数据库结构: 我希望遍历所有子元素(父元素的id设置为同一表中的数据id)。 因此,那些“parent_id”为“0”的是父母,那些parent_id中有数字的是孩子 我想帮助创建一个函数,该函数将生成表,表本身作为父级,其中的所有行都将是该父级的子级。此项目中只有一个深度层(始终有一个父层和一个子层) 有人能帮忙吗,或者想要更详细的描述 谢谢,期待您的回复。从我的角度来看,当我查看您的数据库时,我假设您的父母总是在您的孩子之前添加的(如果我错了,请纠正我)。因为你说你只有一个父母和一

这是我的数据库结构:

我希望遍历所有子元素(父元素的id设置为同一表中的数据id)。 因此,那些“parent_id”为“0”的是父母,那些parent_id中有数字的是孩子

我想帮助创建一个函数,该函数将生成表,表本身作为父级,其中的所有行都将是该父级的子级。此项目中只有一个深度层(始终有一个父层和一个子层)

有人能帮忙吗,或者想要更详细的描述


谢谢,期待您的回复。

从我的角度来看,当我查看您的数据库时,我假设您的父母总是在您的孩子之前添加的(如果我错了,请纠正我)。因为你说你只有一个父母和一个孩子,我相信你的数据库是这样的:

1st - parent
2nd - child of 1st
3rd - parent
4th - child of 3rd
如果是这样的话,一个循环就可以帮助您完成这个伪代码

//get the data from the database
//run through the loop
//check if the parent_id is 0
//   if it is, create an element (a table) to be the container with the id as cited in your data_id
//   if is is not, create an element (a row). Then append this element to the table with the same id as this parent_id

从我的角度来看,当我查看您的数据库时,我假设您的父母总是在您的孩子之前被添加(如果我错了,请纠正我)。因为你说你只有一个父母和一个孩子,我相信你的数据库是这样的:

1st - parent
2nd - child of 1st
3rd - parent
4th - child of 3rd
如果是这样的话,一个循环就可以帮助您完成这个伪代码

//get the data from the database
//run through the loop
//check if the parent_id is 0
//   if it is, create an element (a table) to be the container with the id as cited in your data_id
//   if is is not, create an element (a row). Then append this element to the table with the same id as this parent_id

您可以执行单个循环并检查父\u id是否为0。这里似乎有什么问题?如果我要做一个循环来选择父对象,然后在其中做一个循环来获得所有的子对象,它看起来非常不优化,这就是我现在正在使用的。我正在构建一个包含大量数据字段的项目,因此我正在寻找最优化的方法。谢谢你的编辑顺便说一句,我无法发布图像,直到我的声誉高于10你的数据在你的数据库?如果它是第一个父对象,第一个的第二个子对象,第三个父对象,第三个的第四个子对象,那么您不需要运行2循环吗?或者,您可以只循环1次,如果父项id为0,则创建以数据id作为id的表。如果父项id为!=0,createElement并将其附加到具有您创建的ID的表中。确保先创建父级,你能告诉我怎么做吗?我想我理解你的意思,但我现在还不能完全用代码来表达。我会尝试在答案中加入一个伪代码。你可以做一个循环,检查父id是否为0。这里似乎有什么问题?如果我要做一个循环来选择父对象,然后在其中做一个循环来获得所有的子对象,它看起来非常不优化,这就是我现在正在使用的。我正在构建一个包含大量数据字段的项目,因此我正在寻找最优化的方法。谢谢你的编辑顺便说一句,我无法发布图像,直到我的声誉高于10你的数据在你的数据库?如果它是第一个父对象,第一个的第二个子对象,第三个父对象,第三个的第四个子对象,那么您不需要运行2循环吗?或者,您可以只循环1次,如果父项id为0,则创建以数据id作为id的表。如果父项id为!=0,createElement并将其附加到具有您创建的ID的表中。确保先创建父级,你能告诉我怎么做吗?我想我理解你的意思,但我还不能完全用代码来表达。我会尝试在答案中加入一个伪代码