【发布时间】:2010-05-23 17:19:53
【问题描述】:
当从 MySQL 检索层次结构时(表有一个 ID 列和一个 PARENT 列表示层次关系),我将结果映射到一个枚举数组中,如下所示(对于这个例子,数字是任意的):
Array ( [3] => Array ( [7] => Array () ), [7] => Array ( [8] => Array () ) )
注意 3 是 7 的父级,而 7 是 8 的父级(这可以一直持续下去;任何父级都可以有多个子级)。
我想把这个数组收缩成一个嵌套的多维数组,如下所示:
Array ( [3] => Array ( [7] => Array ( [8] => Array () ) ) )
也就是说,每个 NEW id 都会自动分配一个空数组。无论如何,任何 ID 的子代都会被推入其父代的数组中。
请看下面的插图以获得进一步的说明:
alt text http://img263.imageshack.us/img263/4986/array.gif
这可能会导致复杂的递归操作,因为我总是必须检查具有任何特定 ID 的父级是否已经存在(如果存在,则将值推入其数组中)。 p>
有没有内置的 php 函数可以帮助我解决这个问题?您对如何构建这个有任何想法吗?值得我用它在 wordpress 中构建一个导航栏(它可以包含类别、子类别、帖子......基本上任何东西)。
【问题讨论】: