html - 请教一个PHP问题
巴扎黑
巴扎黑 2017-04-11 09:51:56
[PHP讨论组]

这几天在自己练手的项目中遇到一个比较棘手的问题,问题描述如下:
需要生成这样的数据:

需要生成的数据是从数据库里面去的,而这些数据都是在同一个表中。(包括系部、专业、班级)

请问怎么样才能较好的生成这样的数据格式的?本人使用的TP框架,先谢谢各位

巴扎黑
巴扎黑

全部回复(3)
天蓬老师

你这样的结构是树型的结构,支持无线分类的, id(主键ID) parent_id(父级ID,根类型为0)
上下你的表结构

大家讲道理

把表的结构设计成如下就好了

id - 主键
name - 名称
parent_id - 上一级分类
type - 类型:1 学院、2 专业、3 班级


比如数据:

id        name            parent_id    type

 1    计算机应用技术         0           1
 2    软件工程               1           2
 3    软件工程1班            2           3
 4    软件工程2班            2           3
 5    软件工程3班            2           3
 6    软件工程4班            2           3

取值的时候:

parent_id=0和type=1的为学院,
parent_id等于学院的id和type=2的为专业,
parent_id等于专业id和type=3的为班级


把取到的数据放进数组:

[
  [
    'id' => 1,
    'name' => '计算机应用技术',
    '_child' => [
      [
        'id' => 2,
        'name' => '软件工程',
        '_child' => [
          ['id'=>3,'name'=>'软件工程1班','_child'=>[]],
          ['id'=>4,'name'=>'软件工程2班','_child'=>[]],
          ['id'=>5,'name'=>'软件工程3班','_child'=>[]],
          ['id'=>6,'name'=>'软件工程4班','_child'=>[]],
        ],
      ],
    ],
  ],
];

然后遍历取值就行

阿神

如楼上说的,递归就可以了

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号