Php 使用ID和ParentID从一维数组创建多维数组
这是为了创建带有子菜单的菜单 如果有什么帮助的话,我创建了一个可视化我想要的东西(在HTML中) 我有一个一维数组,没有特定的顺序:Php 使用ID和ParentID从一维数组创建多维数组,php,arrays,nested,associative-array,Php,Arrays,Nested,Associative Array,这是为了创建带有子菜单的菜单 如果有什么帮助的话,我创建了一个可视化我想要的东西(在HTML中) 我有一个一维数组,没有特定的顺序: [ { id: 1, name: AAA }, { id: 2, name: BBB, parent_id: 1 }, { id: 3, name: CCC, parent_id: 2 }, { id: 4, name: DDD, parent_id: 6 }, { id: 5, name: EEE }, { id: 6, name: FF
[
{ id: 1, name: AAA },
{ id: 2, name: BBB, parent_id: 1 },
{ id: 3, name: CCC, parent_id: 2 },
{ id: 4, name: DDD, parent_id: 6 },
{ id: 5, name: EEE },
{ id: 6, name: FFF, parent_id: 1 },
{ id: 7, name: GGG, parent_id: 2 },
]
要创建这个,基本上:
- 如果项具有父项\u id
- 把它放在密钥childs:[…]中的父id下
- 否则
- 将项直接置于新数组下
[
{
id: 1,
name: AAA,
childs: [{
id: 2,
name: BBB,
childs: [{
id: 3,
name: CCC
}, {
id: 7,
name: GGG
}]
}, {
id: 6,
name: FFF,
childs: [{
id: 4,
name: DDD
}]
}]
}, {
id: 5,
name: EEE
}
]
由于初始数组的顺序是未知的,并且父数组的ID可以在该数组中的实际父数组之前出现,所以我不知道如何做到这一点
谢谢大家! 您需要在阵列上循环几次:
父\u id
是否在新数组中。如果是,则将其作为父项id的子项放入新数组中。将它们从原始阵列中删除谢谢你的回答。但是我不能让它工作。你知道一个我可以查的例子吗?