0

我已阅读从 PHP 中的平面数组构建树将一系列父子关系转换为分层树?但无法弄清楚如何为我的问题实施它。有一对这样的关系:

Array
(
    [0] => catalog.iden = catalog_sub.parent
    [1] => catalog.group = catalog_group.iden
    [2] => catalog_photo.iiden = catalog.iden
)

我没有 NULL、0 或任何明确的条件来停止循环。我所知道的是哪个字段具有具有 auto_increment 属性的主键。假设在该示例中它将是名为“iden”的字段,因此在关系中它将是“父”。

我花了一个星期来解决这个问题,但没有结果。那么任何人都可以帮助我按关系顺序排列这个数组。它可能是平面数组的树。

提前致谢。

更新

到目前为止,我只设法这样做:

foreach($matches[0] as &$match) {
    $ref  = explode('=', $match); // split by = sign
    $lft = explode('.', $ref[0]);
    $rgt = explode('.', $ref[1]);

    if($lft[1] == 'iden') {
        $arr[$lft[0]][$rgt[0]] = $rgt[1];
    } else {
        $arr[$rgt[0]][$lft[0]] = $lft[1];
    }
}

是什么提供了按主键排序和按已使用表分组:

Array
(
[catalog] => Array
    (
        [catalog_sub] => parent
        [catalog_photo] => iiden
    )

[catalog_group] => Array
    (
        [catalog] => group
    )

)
4

0 回答 0