当检索从MySQL的层级结构(具有一个ID列和一个PARENT列标志着分层关系表),我的结果映射到如下枚举阵列(在这个例子中的数字是任意的):PHP数组 - 如何将一维数组转换为嵌套多维数组?
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中建立一个导航栏(它可以包含类别,子类别,帖子...基本上任何东西)。
+1为漂亮的图形:) – Alec 2010-05-23 17:26:27