我们的想法是将所有网页数据(标题,描述,开放图标等)保存到数据库表中。当然,有些页面应该是其他页面的子页面。例如,应该有"营销"和"摄影"在"服务"。
为简化起见,我们假设表格如下:
我需要找到一种方法来遍历所有这些数据,并使用PHP打印HTML列表:
<ul>
<li>home</li>
<li>
services
<ul>
<li>marketing</ul>
<li>photography</ul>
</ul>
</li>
</ul>
我试图构建一个应该可重用的系统,并且无法知道递归的深度,所以我需要一种方法来始终确保我检查了所有内容。
在彼此内部使用foreach循环似乎不是最佳解决方案。
提前致谢。
答案 0 :(得分:1)
基本上,您正在处理分层数据。递归(或多个循环内的多个循环)不是解决方案,因为您不希望运行无数的SQL查询,只是为了显示导航列表。如果查看this article,您会发现有两种方法/结构可供使用。 Adjacency List Model
和Nested Set Model
。
Nested Set Model
看起来像这样:
有问题的文章有很多可以查看和使用的示例查询。