我已阅读Build a tree from a flat array in PHP和Convert a series of parent-child relationships into a hierarchical tree?,但无法弄清楚如何为我的问题实施它。这样就有一对关系:
Array
(
[0] => catalog.iden = catalog_sub.parent
[1] => catalog.group = catalog_group.iden
[2] => catalog_photo.iiden = catalog.iden
)
我没有NULL,或0或任何显式条件来停止循环。我所知道的是哪个字段具有auto_increment属性的主键。在该示例中,它将是名为'iden'的字段,因此在关系中它将是“parent”。
我花了一个星期来解决这个问题,但没有结果。那么任何人都可以帮助我按照关系顺序排列这个数组。它可能是平面阵列的树。
提前致谢。
更新
到目前为止,我只能这样做:
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
)
)