树的结构大概是这样的
{
	"start": "你是啊",
	"end": "你是谁啊",
	"content": "",
	"msg_type": "",
	"sub": [{
		"start": "开始 1",
		"end": "开始 2",
		"content": "",
		"msg_type": "",
		"sub": [{
			"start": "",
			"end": "",
			"content": "",
			"msg_type": "",
			"sub": [],
			"name": "A1"
		}, {
			"start": "",
			"end": "",
			"content": "",
			"msg_type": "",
			"sub": [],
			"name": "A2"
		}, {
			"start": "",
			"end": "",
			"content": "",
			"msg_type": "",
			"sub": []
		}],
		"name": "A"
	}, {
		"start": "B1",
		"end": "B2 ",
		"content": "",
		"msg_type": "",
		"sub": [{
			"start": "这是 B1 的结构",
			"end": "这是 B2 的结构",
			"content": "",
			"msg_type": "",
			"sub": [],
			"name": "B111"
		}, {
			"start": "",
			"end": "",
			"content": "",
			"msg_type": "",
			"sub": [],
			"name": "B222"
		}],
		"name": "B"
	}]
}
|      1felixin      2020-12-14 21:12:32 +08:00 via Android 数据量小加列 parent id,数据量大上图数据库 | 
|      2awanganddong OP @felixin 前端传递过来的值,我要处理为数组格式,存起来 | 
|  |      3lithbitren      2020-12-14 21:28:00 +08:00 每个对象通过一个唯一 id 来访问,sub 字段改成存 id,parent id 视情况可存可不存。 | 
|      4awanganddong OP @lithbitren  前端只能给我提供这种结构, | 
|  |      5lithbitren      2020-12-14 22:09:00 +08:00 @awanganddong 唯一 id 当然是后端甚至数据库生成的了,可以看作在用指针管理内存,id 就是指针地址。 | 
|      6awanganddong OP ``` public function tree2List($list, $pid = 0) { static $arr = []; $i = 1; foreach ($list as $item) { $subTree = $item['sub']; unset($item['sub']); $item['pid'] = $pid . $i; $arr[] = $item; if (is_array($subTree) && $subTree) { $this->tree2List($subTree, $item['pid']); } $i++; } return $arr; } ``` 结构写出来了 现在唯一的不足就是用 pid 去定位子集元素这里处理起来比较麻烦 @lithbitren 数据结构这里太薄弱了 终于实现了 |