您的位置:首页 > 编程学习 > > 正文

thinkphp返回json(thinkphp5框架实现数据库读取的数据转换成json格式示例)

更多 时间:2021-10-08 00:26:46 类别:编程学习 浏览量:1915

thinkphp返回json

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

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

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

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • $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');
  • 下面是两个方法:

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 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;
  • }
  • 转换之前的数据,直接从数据库读取,不能使用:

    thinkphp返回json(thinkphp5框架实现数据库读取的数据转换成json格式示例)

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

    thinkphp返回json(thinkphp5框架实现数据库读取的数据转换成json格式示例)

    希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

    原文链接:https://blog.csdn.net/qq_32674347/article/details/81435367

    标签:JSON thinkphp5
    您可能感兴趣