当前位置: 首页 > news >正文

#php 递归获取下级元素#

场景:从数据库中查询出来的数据,存在上下级关系,并且层级不确定,需要把查询出来的数据组织成tree结构。以下是示例代码

/**
 * @param $data
 * @param int $pid
 * @return array
 * 递归
 * 题目-学生答题-tree
 * author by liugong
 */
public function  getRecursionHistoryChild($data, $pid = 0){

    $childrenId_data = array();
    if (empty($data)) {
        return [];
    }
    foreach ($data as $key => $val) {
        if ($val['question_pid'] == $pid) {
            $item = [] ;
            $item["question_id"] = $val['question_id'] ;
            $item["score"] = $val['score'] ;
            $item["child"] = $this ->getRecursionHistoryChild($data, $val['question_id']);
            $childrenId_data[] = $item;
            unset($data[$key]);
        }
    }
    return $childrenId_data;
}

相关文章:

  • STM32 SPI通信
  • 双目视觉(双目相机)
  • 使用YOURLS生成短链(统计点击数)
  • asp.net core 自定义过滤器 注入的几种方式和实现
  • ​「Python大数据」词频数据渲染词云图导出HTML
  • WPS Word自动编号转文本
  • Java Web(十一)--JSON Ajax
  • spring-boot-starter-validation - 实际开发常见使用归纳
  • 【C++私房菜】序列式容器的迭代器失效问题
  • 【深度学习】Pytorch教程(八):PyTorch数据结构:2、张量的数学运算(6):高维张量:乘法、卷积(conv2d~四维张量;conv3d~五维张量)
  • Spring中的事务和事务的传播机制
  • 架构面试题汇总(一)
  • 使用 userdel 命令删除 Linux 中的用户
  • Docker部署Archery(v1.9.1)
  • jvm相关知识详解
  • AI(七)基础
  • CANalyst—Ⅱ 连通与手动收发测试、python收发测试
  • 类和对象基础(C++)
  • Maven简介、安装、使用、依赖传递
  • 11.MongoDB系列之连接副本集
  • 电子与电路复习题重点大题(附答案)
  • 【精品】seata综合示例:订单-库存-扣款
  • Spring常用注解的详细介绍(包你学明白)
  • Torchtext快速入门(一)——Vocab
  • 34461A数字万用表参数
  • AI加速(四)| 衣柜般的分层存储设计
  • Linux格式化输出当前时间
  • c++类和对象中
  • ATT汇编总结_9_静态库与动态库
  • VS Code For Web 深入浅出 -- 导读篇
  • 设计模式(一)前言
  • MyBatis