我已阅读从 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
)
)