我有下表,我从数据库中获取并以PHP格式返回标准数组。
ID | PARENT | Title
1 | null | MAIN
2 | 1 | SubCat1
3 | 2 | Menu Item 1.1
4 | 2 | Menu Item 1.2
5 | 1 | SubCat2
6 | 5 | Menu Item 2.1
7 | 5 | Menu Item 2.2
8 | null | MAIN2
我想最终得到一个像这样的数组:
MAIN
SubCat1
Menu Item 1.1
Menu Item 1.2
SubCat2
Menu Item 2.1
Menu Item 2.2
MAIN2
一定要支持更深层次。如何编写将在此结构中返回的递归函数。到目前为止,我有:
$menu = buildFromData($rows);
private function buildFromData(&$rows, &$result, $parent = null) {
$unsorted = array();
foreach ($rows as $r) {
if ($r->parent == $parent) $result[] = $r;
else $unsorted[] = $r;
}
$rows = $unsorted;
$this->buildFromData($rows, $result, 1);
}
谢谢!