php - 构建数组来表示公司层次结构

标签 php mysql sql

假设我有以下定义表结构:

id(int),related_to(int),description(文本)

并且该表包含类似于以下内容的数据:

id   related_to     description
1        0          departmen1
2        1          section1
3        2          devision1
4        0          departmen2
5        4          section2
6        4          etc....

我需要一个 SQL 语句或 PHP 代码来表示单独数组元素中的每个层次结构。

结果一定是

$data=array(
0=>'department1','section1','devision1'
2=>'departmen2','section2','devision2'
3=> 'departmen1','section3',.......
);

执行此操作的最佳方法是什么?

谢谢。

最佳答案

在 PHP 中处理树状结构的最佳方式是使用对象。可以找到一个很好的例子 here .

向树对象添加一个函数,该函数以您想要的数组格式返回子对象,并在子对象上调用相同的函数。通过对顶级对象的一个​​函数调用,您将收到一组包含您需要的格式的所有子项。参见 Tree Traversal有关递归函数的更多信息。

关于php - 构建数组来表示公司层次结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6322215/

相关文章:

PHP Mongo 聚合 $cond if/then 语法

php - 一页可处理带有参数的不同URL

php - 使用 PHP 的 RSS 提要将日期时间 (GMT) 发布为 Unix 时间戳格式

php - SQL注入(inject)不起作用

mysql - 不在同一个表中使用

php - 如何使用php按类别排序上传的图像?

mysql - 关系数据库中记录的分布式处理

sql - postgresql full join migrate 前两列

mysql - 我的 SQL 语法有什么问题?我在其中使用了 DISTINCT 和 EXCEPT

php - MySql 查询使用两个带内连接的表(我认为)