从MySQL检索分层结构(一张表格,包含一个ID列和一个PARENT列表示分层关系),我将结果映射为以下枚举数组(对于这个例子,数字是任意的):
Array ( [3] => Array ( [7] => Array () ), [7] => Array ( [8] => Array () ) )
注意3是7的父级,7是8的父级(这可能会一直延续下去;任何父级都可以有多个子级)。
我想将此数组缩小为嵌套的多维数组,如下所示:
Array ( [3] => Array ( [7] => Array ( [8] => Array () ) ) )
也就是说,每个新的id都会自动分配一个空数组。无论如何,任何ID的子元素都将被推入它们父元素的数组中。
请看以下示例以获得进一步的说明: alt text http://img263.imageshack.us/img263/4986/array.gif 这可能导致一个复杂的递归操作,因为我必须始终检查是否已经存在具有任何特定ID的父元素(如果存在,将其值推入其数组中)。
是否有内置的php函数可以帮助我完成这个任务?您有关于如何构建此功能的任何想法吗?值得一提的是,我正在使用它来构建WordPress中的导航栏(其中可以包含类别、子类别、帖子等任何内容)。