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 相关文章推荐
Windows下的PHP5.0安装配制详解
Sep 05 PHP
PHP iconv 函数转gb2312的bug解决方法
Oct 11 PHP
ThinkPHP模板自定义标签使用方法
Jun 26 PHP
ThinkPHP内置jsonRPC的缺陷分析
Dec 18 PHP
php实现插入排序
Mar 29 PHP
php中使用base HTTP验证的方法
Apr 20 PHP
php解析url并得到url中的参数及获取url参数的四种方式
Oct 26 PHP
php在数据库抽象层简单使用PDO的方法
Nov 03 PHP
php实现常见图片格式的水印和缩略图制作(面向对象)
Jun 15 PHP
tp5(thinkPHP5)框架数据库Db增删改查常见操作总结
Jan 10 PHP
php模式设计之观察者模式应用实例分析
Sep 25 PHP
PHP读取文件或采集时解决中文乱码
Mar 09 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
php下批量挂马和批量清马代码
2011/02/27 PHP
PHP请求远程地址设置超时时间的解决方法
2016/10/29 PHP
关于Curl在Swoole协程中的解决方案详析
2019/09/12 PHP
Laravel 自带的Auth验证登录方法
2019/09/30 PHP
JQery 渐变图片导航效果代码 漂亮
2010/01/01 Javascript
google jQuery 引用文件,jQuery 引用地址集合(jquery 1.2.6至jquery1.5.2)
2011/04/24 Javascript
JS验证日期的格式YYYY-mm-dd 具体实现
2013/06/29 Javascript
jquery实现微博文字输入框 输入时显示输入字数 效果实现
2013/07/12 Javascript
js中function()使用方法
2013/12/24 Javascript
用js格式化金额可设置保留的小数位数
2014/05/09 Javascript
JS创建类和对象的两种不同方式
2014/08/08 Javascript
js库Modernizr的介绍和使用
2015/05/07 Javascript
JavaScript中的Math.atan2()方法使用详解
2015/06/15 Javascript
详解webpack3编译兼容IE8的正确姿势
2017/12/21 Javascript
JavaScript使用闭包模仿块级作用域操作示例
2019/01/21 Javascript
js实现倒计时器自定义时间和暂停
2019/02/25 Javascript
python的三目运算符和not in运算符使用示例
2014/03/03 Python
Python 冒泡,选择,插入排序使用实例
2015/02/05 Python
浅谈Python2获取中文文件名的编码问题
2018/01/09 Python
Python实现k-means算法
2018/02/23 Python
python爬取哈尔滨天气信息
2018/07/14 Python
Python PyPDF2模块安装使用解析
2020/01/19 Python
django实现后台显示媒体文件
2020/04/07 Python
使用K.function()调试keras操作
2020/06/17 Python
雅诗兰黛香港官网:Estee Lauder香港
2017/09/26 全球购物
草莓网化妆品澳大利亚站:Strawberrynet AU
2017/12/18 全球购物
俄罗斯花园种植材料批发和零售网上商店:Беккер
2019/07/22 全球购物
项目经理的岗位职责
2013/11/23 职场文书
烹饪自我鉴定
2014/03/01 职场文书
施工质量承诺书范文
2014/05/30 职场文书
意向书范本
2014/07/29 职场文书
成本会计岗位职责
2015/02/03 职场文书
信贷客户经理岗位职责
2015/04/09 职场文书
运动员加油词
2015/07/18 职场文书
修辞手法有哪些?
2019/08/29 职场文书
Spring IOC容器Bean的作用域及生命周期实例
2022/05/30 Java/Android