【发布时间】:2018-06-21 09:14:56
【问题描述】:
我有一个嵌套数组,如下所示:-
array(
array(
'id' => 45cfeteuid536hjj929,
'name' = 'Cuisines',
'children' => array(
array(
'id' => 45gcfeteuid536hjj929,
'name' = 'Itlaian',
),
array(
'id' => 45bjfe78ng5d536hjj92,
'name' = 'Indian',
'children' => array(
array(
'id' => 457hfe78ng5d53ghy56j,
'name' = 'Punjabi'
)
)
)
)
)
);
我有一张这样的桌子:-
|--------------------------------|
| id | name | parent_id |
|--------------------------------|
我希望像这样插入数据:-
|---------------------------------------------------------------|
| id | name | parent_id | api_id |
|---------------------------------------------------------------|
| 1 | Cuisines | 0 | 45cfeteuid536hjj929 |
|---------------------------------------------------------------|
| 2 | Italian | 1 | 45gcfeteuid536hjj929 |
|---------------------------------------------------------------|
| 3 | Indian | 1 | 45bjfe78ng5d536hjj92 |
|---------------------------------------------------------------|
| 4 | Punjabi | 3 | 457hfe78ng5d53ghy56j |
|---------------------------------------------------------------|
child 的 parent_id 是它所属的对象的 id。表的id是mysql db自动生成的自增值。
例如:-
- 第 1 步:在保存美食时,保存了 id(本质上是自动增量) 是1。因为它是根,所以parent_id = 0。
- 第 2 步:在保存意大利语时,id(本质上是自动增量) 保存为 1。由于是 Cuisines 的子项,因此 parent_id = 1
如何以这种方式保存嵌套数组?
【问题讨论】:
-
请分享你的尝试?
-
我不确定:
parent_id是同一表中其他行的 idid? -
@MickaelLeger,更新了文档
-
好的,所以
parent_id对于每个root parent都将为 0,并且孩子应该将父母的id视为parent_id。我不知道这样做是否是一个好习惯(如果删除父级会发生什么,你需要删除所有子级?),但一种方法可能是使用递归函数,也许你存储最后一个 @ 987654330@ 之后再用吗?你在使用 PDO 吗? -
没有。我正在使用 Laravel Eloquent。
标签: php multidimensional-array laravel-5.6