thinkphp5框架实现数据库读取的数据转换成json格式示例


Posted in PHP onOctober 10, 2019

本文实例讲述了thinkphp5框架实现数据库读取的数据转换成json格式。分享给大家供大家参考,具体如下:

首先从数据库读数据,然后调用list_to_tree方法,再调用findchild方法,最后输出

$category = DB::name('Category');
$category_list = $category->select();
$data=$this->list_to_tree($category_list,'category_id','category_parent_id','children'); //调用下面的方法
$data=$this->findChild($data);
header('Content-Type:application/json; charset=utf-8');
exit(json_encode($data,JSON_UNESCAPED_UNICODE));
// return $this->fetch('index');
$this->ajaxReturn($data, 'JSON');

下面是两个方法:

function findChild($arr){
    static $tree=array();
    foreach ($arr as $key=>$val){
        $tree[]=$val;
        if (isset($val['_child'])){
          $this->findChild($val['_child']);
        }
      }
  return $tree;
  }
  /**
   * 把返回的数据集转换成Tree
   * @access public
   * @param array $list 要转换的数据集
   * @param string $pid parent标记字段
   * @param string $level level标记字段
   * @return array
   */
  function list_to_tree($list, $pk='id',$pid = 'pid',$child = '_child',$root=0) {
    // 创建Tree
    $tree = array();
    if(is_array($list)) {
    // 创建基于主键的数组引用
    $refer = array();
    foreach ($list as $key => $data) {
      $refer[$data[$pk]] =& $list[$key];
    }
    foreach ($list as $key => $data) {
      // 判断是否存在parent
      $parentId = $data[$pid];
      if ($root == $parentId) {
      $tree[] =& $list[$key];
      }else{
      if (isset($refer[$parentId])) {
        $parent =& $refer[$parentId];
        $parent[$child][] =& $list[$key];
      }
      }
    }
    }
    return $tree;
  }

转换之前的数据,直接从数据库读取,不能使用:

thinkphp5框架实现数据库读取的数据转换成json格式示例

转换之后的数据,可以被ztree树插件直接使用的json格式:

thinkphp5框架实现数据库读取的数据转换成json格式示例

PHP 相关文章推荐
我的论坛源代码(八)
Oct 09 PHP
PHP EOT定界符的使用详解
Sep 30 PHP
PHP Zip解压 文件在线解压缩的函数代码
May 26 PHP
php使用qr生成二维码的示例分享
Jan 20 PHP
yii2中使用Active Record模式的方法
Jan 09 PHP
php使用escapeshellarg时中文被过滤的解决方法
Jul 10 PHP
利用PHP绘图函数实现简单验证码功能的方法
Oct 18 PHP
thinkPHP框架实现的无限回复评论功能示例
Jun 09 PHP
Laravel 实现数据软删除功能
Aug 21 PHP
php连接mysql数据库最简单的实现方法
Sep 24 PHP
Laravel-admin之修改操作日志的方法
Sep 30 PHP
PHP Trait功能与用法实例分析
Jun 03 PHP
在laravel中使用with实现动态添加where条件
Oct 10 #PHP
Laravel关系模型指定条件查询方法
Oct 10 #PHP
laravel 输出最后执行sql 附:whereIn的使用方法
Oct 10 #PHP
基于laravel where的高级使用方法
Oct 10 #PHP
laravel 实现设置时区的简单方法
Oct 10 #PHP
thinkphp5.1框架实现格式化mysql时间戳为日期的方式小结
Oct 10 #PHP
Laravel Eloquent ORM 多条件查询的例子
Oct 10 #PHP
You might like
?繁体转换的class
2006/10/09 PHP
PHP远程连接MYSQL数据库非常慢的解决方法
2008/07/05 PHP
destoon二次开发常用数据库操作
2014/06/21 PHP
Windows下Apache + PHP SESSION丢失的解决过程全纪录
2015/04/07 PHP
PHP+ajax实现获取新闻数据简单示例
2018/05/08 PHP
Laravel5.5 动态切换多语言的操作方式
2019/10/25 PHP
初试jQuery EasyUI 使用介绍
2010/04/01 Javascript
js点击出现悬浮窗效果不使用JQuery插件
2014/01/20 Javascript
原生js仿jq判断当前浏览器是否为ie,精确到ie6~8
2014/08/30 Javascript
JavaScript 浏览器兼容性总结及常用浏览器兼容性分析
2016/03/30 Javascript
jQuery实现给input绑定回车事件的方法
2017/02/09 Javascript
react配合antd组件实现的管理系统示例代码
2018/04/24 Javascript
生产制造追溯系统之在线打印功能
2019/06/03 Javascript
基于vue写一个全局Message组件的实现
2019/08/15 Javascript
Vue的data、computed、watch源码浅谈
2020/04/04 Javascript
基于Vue sessionStorage实现保留搜索框搜索内容
2020/06/01 Javascript
netbeans7安装python插件的方法图解
2013/12/24 Python
Python中的集合类型知识讲解
2015/08/19 Python
python字符串,数值计算
2016/10/05 Python
Python 遍历列表里面序号和值的方法(三种)
2017/02/17 Python
Python中shutil模块的学习笔记教程
2017/04/04 Python
python中找出numpy array数组的最值及其索引方法
2018/04/17 Python
在Python 中实现图片加框和加字的方法
2019/01/26 Python
解决python中导入win32com.client出错的问题
2019/07/26 Python
Python测试Kafka集群(pykafka)实例
2019/12/23 Python
python针对Oracle常见查询操作实例分析
2020/04/30 Python
html5 canvas手势解锁源码分享
2020/01/07 HTML / CSS
ProBikeKit英国:在线公路自行车之家
2017/02/10 全球购物
加拿大女包品牌:Matt & Nat
2017/05/12 全球购物
中文系学生自荐信范文
2013/11/13 职场文书
采购员的工作职责
2013/12/26 职场文书
关于人生的感言
2014/01/17 职场文书
司机辞职报告范文
2014/01/20 职场文书
档案室主任岗位职责
2014/02/12 职场文书
幼儿园中班教学反思
2016/03/03 职场文书
Python OpenCV超详细讲解调整大小与图像操作的实现
2022/04/02 Python