无限级分类及生成json数据
第一步,先去数据库查询类别数据,然后交给生成json数据的函数处理,代码如下:
1 /*生成类别JSON数据*/ 2 public function wirteJson(){ 3 $dataInfo = \think\Db::query("select id as v,name as n,pid from think_pro_category"); 4 $data = $this->getCategoryJson($dataInfo); 5 return $data; 6 }
第二步,将查询出来的类别数据重新归类排序,代码如下:
1 /** 2 *处理分类数组 3 **/ 4 function generateTree($items) { 5 $tree = array(); 6 foreach($items as $item){ 7 if(isset($items[$item['pid']])){ 8 $items[$item['pid']]['s'][] = &$items[$item['v']]; 9 }else{ 10 $tree[] = &$items[$item['v']]; 11 } 12 } 13 return $tree; 14 }
第三步,生成json数据,并返回数据,代码如下:
1 /** 2 * 功能:无限级类别json数据生成 3 * 参数:$data 类别查询结果集 4 * 返回值:$json 递归查询排序后的json数据 5 */ 6 public function getCategoryJson($dataInfo) { 7 /*生成json数据*/ 8 foreach($dataInfo as $category) { 9 $tree[$category['v']] = $category; 10 $tree[$category['v']]['s'] = array(); 11 } 12 $content = json_encode(generateTree($tree)); 13 $content = str_replace(',"s":[]', "", $content); 14 // for( $i = 0; $i < count($dataInfo); $i++ ) { 15 // $content = str_replace('"'.$dataInfo[$i]['v'].'":', "", $content); 16 // } 17 //$content = '['.substr($content,1,strlen($content)-2).']'; 18 //return $content; 19 /*写入文件*/ 20 //文件存放路径 21 $filePath = $_SERVER['DOCUMENT_ROOT'].DS.'/category/category.json'; 22 $returnval = file_put_contents($filePath,$content); 23 // $fopen = fopen($filePath,'w+'); 24 // fwrite($fopen,$content); 25 // fclose($fopen); 26 return $returnval; 27 }
转载于:https://www.cnblogs.com/walblog/p/8005333.html
无限级分类及生成json数据相关推荐
- 生成JSON数据--fastjson(阿里)方法
fastjson(阿里)方法生成JSON数据: 与Gson类似,创建相应类,再使用JSON.toJSONString()添加对象 要求:生成如下JSON数据 1.{"age":3, ...
- 生成JSON数据--Gson(谷歌)方法
Gson生成JSON数据方法: 创建相应的类,然后创建对象,toJson()进去就可以了 要求:生成如下JSON数据 1.{"age":4,"name":&qu ...
- mysql数据库生成json_Python3实现 将MySQL数据库中的记录生成JSON数据
思路:首先连接MYSQL数据库,将查询到的数据存放到字典中,然年将每个组装好的字典放到List中 调用json.dumps(jsonData, ensure_ascii=False)方法,生成JSON ...
- ASP生成JSON数据
原文地址为: ASP生成JSON数据 < %@LANGUAGE = " VBSCRIPT " CODEPAGE = " 65001 " % > & ...
- java 生成json数据_解析和生成JSON数据
JSONObject:可以看作是一个json对象,这是系统中有关JSON定义的基本单元,其包含一对儿(Key/Value)数值.它对外部(External: 应用toString()方法输出的数值)调 ...
- 生成JSON数据--官方方法
官方生成方法: 1)需要什么就给什么,要属性就给属性,要对象就给对象,要集合就给集合2)添加都是使用put()方法 要求: 1.生成如下JSON数据: {"age":4," ...
- mysql 动态sql 解析json数据_在SQL 中生成JSON数据
这段时间接手一个数据操作记录的功能,刚拿到手上的时候打算用EF做,后来经过仔细考虑最后还是觉定放弃,最后思考再三决定: 1.以模块为单位分表.列固定(其实可以所有的操作记录都放到同一个表,但是考虑到数 ...
- java解析与生成json数据的四种方式,比如将json字符串转为json对象或json对象转为json字符串
文章目录 1. 详说json 1.1 何为json 1.2 json语法 2. Java解析与生成JSON的四种方式 2.1 传统方式 2.2 利用Jackson方式 2.3 利用Gson方式 2.4 ...
- asp.net怎么生成json数据_mysql数据库配置文件不知道怎么配置?用这个工具一键生成...
概述 作为DBA或系统运维人员在安装或配置mysql的过程中,经常遇到mysql的配置文件参数不知如何设置?哪些参数需要设置?参数值设置为多少比较合理.下面分享一个老叶的在线生成mysql的生成器. ...
最新文章
- windows10 python调用wsl_(亲测!)Windows10用WSL安装Ubuntu远程桌面连接和配置开发环境...
- POJ1741 Tree(树分治——点分治)题解
- spark ui的访问地址_Spark篇之HA集群搭建
- linux安装mysql5.6.14_(四)Zabbix_linux安装mysql5.6
- php explode txt,PHP explode():字符串转数组
- java中自动装箱的问题
- Spring Boot————简介与Spring时代的承接
- iOS:重识Transform和frame
- GBaseDataStudio管理工具
- 完整的蓝屏错误代码大全详解
- TV版应用包名 TV常用apk包名 (当贝市场下载)
- 0033【MySQL】Mysql备份导入异常:@@GLOBAL.GTID_PURGED can only be set when @@GLOBAL.GTID_EXECUTED is empty
- 高德地图ios11 定位失败
- 嘉腾发布“守护者I”抗疫机器人
- 分类模型中准确率、敏感度、特异度的理解
- SAP ABAP ZBA_R001 查询用户下的角色,事务代码
- 书单 | 双十一薅当当羊毛4折囤书攻略
- 【将数组a中n个整数按相反顺序存放】
- zookeeper从基础到精通
- 从 Server Timing Header 看服务器是如何处理请求的
热门文章
- bios设置 联想m8000t_怎么进bios设置硬盘启动顺序
- friendly发音_friendly是什么意思_friendly怎么读_friendly翻译_用法_发音_词组_同反义词_友好的_亲密的-新东方在线英语词典...
- SpringMVC教程上篇
- python安装lap_一个python脚本解决安装mq的依赖问题
- c语言中O空字符,OC语言中字符串的使用
- k3 审核流程图_K3操作流程图
- 基于Java+SpringBoot+vue+element等动物救助平台设计和实现
- linux utmp结构体,Linux C编程如何使用联机帮助来解决编程问题?
- TOPSIS与模糊Borda 的组合应用(以第二届大湾区杯和国赛为案例)
- 白话(whitening)