php递归json类实例


Posted in PHP onDecember 02, 2014

本文实例讲述了php递归json类的实现方法。分享给大家供大家参考。

具体实现代码如下:

<?php 

/*  

 * @ anthor:QD 

 * @ time:  2013-09-27 

 */ 

class json{ 

 private $Arr = array(); //传入数组 

 //构造器 

 public function json($array) 

 { 

  if(!is_array($array)) return false; 

  $this->Arr = $array; 

 } 

 //解析主函数 

 public function MainArr() 

 { 

  $arr = $this->Arr; 

  if($this->TypeArr($arr)) 

  { 

   $json = $this->NumArr($arr); 

  } 

  else 

  { 

   $json = $this->IndexArr($arr); 

  } 

  return $json; 

 } 

 //解析索引数组 

 public function IndexArr($arr) 

 { 

  $str =""; 

  foreach($arr as $k=>$value) 

  { 

   if(is_array($value)) 

   { 

    if($this->TypeArr($value)) { $sun=$this->NumArr($value);} 

    else               {$sun=$this->IndexArr($value);} 

    if(strpos($sun,"}") || strpos($sun,"]")) 

    { 

     $str .= """.$k."":".$sun.","; 

    } 

    else 

    { 

     $str .= """.$k."":"".$sun."","; 

    } 

   } 

   else 

   { 

     $str .= """.$k."":"".$value."","; 

   } 

  } 

  $str = "{".trim($str,",")."}"; 

  return $str; 

 } 

 //解析数字数组 

 public function NumArr($arr)  

 { 

  $str = ""; 

  foreach($arr as $value) 

  { 

   if(is_array($value)) 

   { 

    if($this->TypeArr($value)) { $sun=$this->NumArr($value);} 

    else               {$sun=$this->IndexArr($value);} 

    if(strpos($sun,"}") || strpos($sun,"]")) 

    { 

     $str .= $sun.","; 

    } 

    else 

    { 

     $str .= """.$sun."","; 

    } 

   } 

   else 

   { 

    $str .= """.$value."","; 

   } 

  } 

  $str = "[".trim($str,",")."]"; 

  return $str; 

 } 

 //检验一个数组是不是严格数字索引    

 public function TypeArr($arr) 

 { 

  if(array_values($arr) === $arr) return true; 

  return false; 

 } 

} 

?>

希望本文所述对大家的PHP程序设计有所帮助。

PHP 相关文章推荐
dedecms防止FCK乱格式化你的代码的修改方法
Mar 17 PHP
apache+codeigniter 通过.htcaccess做动态二级域名解析
Jul 01 PHP
PHP常用特殊运算符号和函数总结(php新手入门必看)
Feb 02 PHP
PHP之生成GIF动画的实现方法
Jun 07 PHP
php实例分享之mysql数据备份
May 19 PHP
ecshop 2.72如何修改后台访问地址
Mar 03 PHP
PHP钩子与简单分发方式实例分析
Sep 04 PHP
php实现统计二进制中1的个数算法示例
Jan 23 PHP
PHP中常用的三种设计模式详解【单例模式、工厂模式、观察者模式】
Jun 14 PHP
Yii框架中使用PHPExcel的方法分析
Jul 25 PHP
PHP 图片合成、仿微信群头像的方法示例
Oct 25 PHP
基于PHP的微信公众号的开发流程详解
Aug 07 PHP
php实现的SESSION类
Dec 02 #PHP
thinkphp配置连接数据库技巧
Dec 02 #PHP
Yii核心组件AssetManager原理分析
Dec 02 #PHP
php实现微信公众平台账号自定义菜单类
Dec 02 #PHP
php获取CSS文件中图片地址并下载到本地的方法
Dec 02 #PHP
PHP间隔一段时间执行代码的方法
Dec 02 #PHP
ThinkPHP采用原生query实现关联查询left join实例
Dec 02 #PHP
You might like
一个php导出oracle库的php代码
2009/04/20 PHP
php计算整个目录大小的方法
2015/06/19 PHP
PHP入门教程之数组用法汇总(创建,删除,遍历,排序等)
2016/09/11 PHP
php 解析xml 的四种方法详细介绍
2016/10/26 PHP
JavaScript 密码强度判断代码
2009/09/05 Javascript
Javascript执行效率全面总结
2013/11/04 Javascript
IE浏览器IFrame对象内存不释放问题解决方法
2014/08/22 Javascript
form.submit()不能提交表单的原因分析
2014/10/23 Javascript
ECMAScript中函数function类型
2015/06/03 Javascript
JavaScript实现文字跟随鼠标特效
2015/08/06 Javascript
JQuery ztree带筛选、异步加载实例讲解
2016/02/25 Javascript
js贪吃蛇游戏实现思路和源码
2016/04/14 Javascript
微信页面倒计时代码(解决safari不兼容date的问题)
2016/12/13 Javascript
jquery请求servlet实现ajax异步请求的示例
2017/06/03 jQuery
详解JS中的this、apply、call、bind(经典面试题)
2017/09/19 Javascript
解决Webpack 热部署检测不到文件变化的问题
2018/02/22 Javascript
Node.js+ELK日志规范的实现
2019/05/23 Javascript
Angular单元测试之事件触发的实现
2020/01/20 Javascript
ES2020系列之空值合并运算符 '??'
2020/07/22 Javascript
[46:10]2014 DOTA2国际邀请赛中国区预选赛 CnB VS HGT
2014/05/21 DOTA
解决Python requests库编码 socks5代理的问题
2018/05/07 Python
numpy 进行数组拼接,分别在行和列上合并的实例
2018/05/08 Python
Python中pandas模块DataFrame创建方法示例
2018/06/20 Python
在python中使用nohup命令说明
2020/04/16 Python
使用py-spy解决scrapy卡死的问题方法
2020/09/29 Python
详解numpy.ndarray.reshape()函数的参数问题
2020/10/13 Python
贝玲妃美国官方网站:Benefit美国
2016/08/28 全球购物
优秀的2014年两会精神解读
2014/03/17 职场文书
初中英语演讲稿
2014/04/29 职场文书
活动总结报告格式
2014/05/09 职场文书
校园广播站开场白
2015/06/01 职场文书
党支部考察鉴定意见
2015/06/02 职场文书
检讨书怎么写?
2019/06/21 职场文书
golang goroutine顺序输出方式
2021/04/29 Golang
MySQL 覆盖索引的优点
2021/05/19 MySQL
HTML中的表格元素介绍
2022/02/28 HTML / CSS