从SQL分层数据

邻接表模型

在我的模型我有一系列的对象,每个存储的与他们的父ID。我现在用的是邻接表模型作为我的层次分析法。

简单地输出那里,然后邻接表的所有实施例。无尝试创建从结果集的多维数组。

---------------
| id | parent |
---------------
| 1  | NULL   |
| 2  | 1      |
| 3  | 1      |
| 4  | 2      |
| 5  | 2      |
| 6  | 5      |
---------------

对象

我创造了我的班被称为“孩子”的数组变量,并希望增加孩子每一次我发现从数据库查询的子对象。

创建的每个对象中的阵列以及将所述后续对象在那里感觉错。我不能单独创建对象的数组?这样做,这样可以使它很难遍历数组时,我把它搬进视图。

我觉得我我处理这个问题的错误的方式?

是否有使用比这个PHP阵列一个更聪明的方式?

有帮助吗?

解决方案

孩子的阵列不必是类的一部分;你总是可以只是做一个特设的树,其中一个节点是包含对象及其子女的哈希值。我不知道PHP,但它看起来是这样的:

{
    object => $row1,
    children => [
        {
            object => $row2,
            children => [ ... ],
        }, {
            object => $row3,
            children => [],
        }
    ]
}

其他提示

你需要它是一个数组?一个选项可以是具有对象实现的递归分级结构像这样的:

http://www.php.net/~helly /php/ext/spl/classRecursiveArrayIterator.html

可以添加的对象作为子和仍然行进的结构以阵列状的方式。

在SPL的文档是稀疏但它提供了一些良好的横越结构,接口和类。一些好的教程,它在网络上存在。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top