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 相关文章推荐
php cookis创建实现代码
Mar 16 PHP
php在页面中调用fckeditor编辑器的方法
Jun 10 PHP
删除html标签得到纯文本可处理嵌套的标签
Apr 28 PHP
PHP缓存机制Output Control详解
Jul 14 PHP
php格式化时间戳显示友好的时间实现思路及代码
Oct 23 PHP
ThinkPHP3.2.3数据库设置新特性
Mar 05 PHP
php实现encode64编码类实例
Mar 24 PHP
ThinkPHP模型详解
Jul 27 PHP
php图像处理类实例
Jul 28 PHP
Zend Framework动作助手Redirector用法实例详解
Mar 05 PHP
thinkPHP通用控制器实现方法示例
Nov 23 PHP
PHP mongodb操作类定义与用法示例【适合mongodb2.x和mongodb3.x】
Jun 16 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中用PHPMailer来发送邮件的示例(126.com的例子)
2013/06/24 PHP
CI框架中通过hook的方式实现简单的权限控制
2015/01/07 PHP
[原创]php实现数组按拼音顺序排序的方法
2017/05/03 PHP
ThinkPHP框架实现定时执行任务的两种方法分析
2018/09/04 PHP
Js 刷新框架页的代码
2010/04/13 Javascript
GridView中获取被点击行中的DropDownList和TextBox中的值
2013/07/18 Javascript
用js判断输入是否为中文的函数
2014/03/10 Javascript
javaScript中两个等于号和三个等于号之间的区别介绍
2014/06/27 Javascript
滚动条响应鼠标滑轮事件实现上下滚动的js代码
2014/06/30 Javascript
js window对象属性和方法相关资料整理
2015/11/11 Javascript
详谈AngularJs 控制器、数据绑定、作用域
2017/07/09 Javascript
Vue实现拖放排序功能的实例代码
2019/07/08 Javascript
JavaScript 声明私有变量的两种方式
2021/02/05 Javascript
react项目从新建到部署的实现示例
2021/02/19 Javascript
python如何让类支持比较运算
2018/03/20 Python
python实现人人自动回复、抢沙发功能
2018/06/08 Python
Pandas库之DataFrame使用的学习笔记
2019/06/21 Python
python数据归一化及三种方法详解
2019/08/06 Python
Python 中pandas索引切片读取数据缺失数据处理问题
2019/10/09 Python
pycharm下配置pyqt5的教程(anaconda虚拟环境下+tensorflow)
2020/03/25 Python
Python爬虫爬取、解析数据操作示例
2020/03/27 Python
selenium+超级鹰实现模拟登录12306
2021/01/24 Python
浅谈html5与APP混合开发遇到的问题总结
2018/03/20 HTML / CSS
英国知名小木屋定制网站:Tiger Sheds
2020/03/06 全球购物
大学毕业生最详细的自我评价分享
2013/11/18 职场文书
家长会演讲稿范文
2014/01/10 职场文书
电信营业员自我评价分享
2014/01/17 职场文书
小学生打架检讨书
2014/01/26 职场文书
元旦联欢会感言
2014/03/04 职场文书
2014年党的群众路线活动个人整改措施
2014/10/28 职场文书
工作业绩不及格检讨书
2014/10/28 职场文书
2015年小学开学寄语
2015/02/27 职场文书
大学生村官工作心得体会
2016/01/23 职场文书
优秀乡村医生事迹材料(2016精选版)
2016/02/29 职场文书
JavaScript小技巧带你提升你的代码技能
2021/09/15 Javascript
python标准库ElementTree处理xml
2022/05/20 Python