php树自下而上

时间:2011-10-20 07:22:13

标签: php tree

我的数据库中有一个树形结构,例如员工。

 create table "employees" (employee_id, name, manager_id);

当然,manager_id是该员工经理的employee_id(同一张表)。

这可以很容易地转换为数组,代表公司的树结构 (虽然顶部没有1位CEO,但根节点有多个元素)。到目前为止一切都很好。

现在,为了处理注册,我有一个employee_ids数组

 $registrations = array(3,7, 10);

我需要在树形结构中显示那些,只显示这些员工的经理(但直到树的顶部)。有没有人有这个算法?我设法将它们添加到树中,但是当2个人共享1个管理员时,没有设法将不同的分支放在一起。

假设员工3和10(上面的CFR)与ID为15的员工分享相同的经理,员工7的经理ID为23,其中两位经理向ID为33的同一位经理报告,后者报告为45:I我需要一个数组

array('45'=>array('33'=>array('23'=>array(7), '15'=>array(3,10))));

我确实设法构建了这个结构,例如从员工3开始,我得到了

array('45'=>array('33'=>array('15'=>array(3))));

在为员工7循环时,我设法构建分支

array(23->array(7))

但是我现在如何在已有的阵列中合并这个新阵列......?我知道23的经理是33,但我怎么做a)发现它需要被添加到树中,并且b)在正确的位置将它添加到树上?任何人

1 个答案:

答案 0 :(得分:-1)

我的意见是你选择了错误的方法将树数据存储到数据库中。

如果您想将树数据存储到数据库中,则必须使用Modified Preorder Tree Traversal。

有关在数据库中存储树的这种方式的更多信息,请访问:http://www.sitepoint.com/hierarchical-data-database/

使用此算法,您可以按照自己喜欢的顺序管理数据,并轻松提取自己喜欢的任何信息!