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 相关文章推荐
用PHP和ACCESS写聊天室(六)
Oct 09 PHP
PHP通过COM使用ADODB的简单例子
Dec 31 PHP
查找php配置文件php.ini所在路径的二种方法
May 26 PHP
php实现模拟post请求用法实例
Jul 11 PHP
php文件上传类完整实例
May 14 PHP
php 截取utf-8格式的字符串实例代码
Oct 30 PHP
如何判断php mysqli扩展类是否开启
Dec 24 PHP
PHP用户管理中常用接口调用实例及解析(含源码)
Mar 09 PHP
POST一个JSON格式的数据给Restful服务实例详解
Apr 07 PHP
PHP基于DateTime类解决Unix时间戳与日期互转问题【针对1970年前及2038年后时间戳】
Jun 13 PHP
PHP验证类的封装与使用方法详解
Jan 10 PHP
php的无刷新操作实现方法分析
Feb 28 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中如何判断AJAX提交的数据
2012/02/05 PHP
如何在php中正确的使用json
2013/08/06 PHP
怎样使用php与jquery设置和读取cookies
2013/08/08 PHP
php实现查询功能(数据访问)
2017/05/23 PHP
php 使用ActiveMQ发送消息,与处理消息操作示例
2020/02/23 PHP
利用javascript/jquery对上传文件格式过滤的方法
2009/07/25 Javascript
javascript 去字符串空格终极版(支持utf8)
2009/11/14 Javascript
javascript offsetX与layerX区别
2010/03/12 Javascript
JS实现网页表格自动变大缩小的方法
2015/03/09 Javascript
JS获取鼠标坐标位置实例分析
2016/01/20 Javascript
Eclipse编辑jsp、js文件时卡死现象的解决办法汇总
2016/02/02 Javascript
js cookie实现记住密码功能
2017/01/17 Javascript
JavaScript实现简易的天数计算器实例【附demo源码下载】
2017/01/18 Javascript
AngularJS Toaster使用详解
2017/02/24 Javascript
JavaScript评论点赞功能的实现方法
2017/03/13 Javascript
利用node.js+mongodb如何搭建一个简单登录注册的功能详解
2017/07/30 Javascript
vue.js配合$.post从后台获取数据简单demo分享
2018/08/11 Javascript
H5+C3+JS实现双人对战五子棋游戏(UI篇)
2020/05/28 Javascript
vue组件之间通信实例总结(点赞功能)
2018/12/05 Javascript
vue路由教程之静态路由
2019/09/03 Javascript
Vue 电商后台管理项目阶段性总结(推荐)
2020/08/22 Javascript
[40:06]DOTA2亚洲邀请赛 4.3 突围赛 Liquid vs VGJ.T 第一场
2018/04/04 DOTA
Python模仿POST提交HTTP数据及使用Cookie值的方法
2014/11/10 Python
Python实现的使用telnet登陆聊天室实例
2015/06/17 Python
python pycurl验证basic和digest认证的方法
2018/05/02 Python
Python DataFrame 设置输出不显示index(索引)值的方法
2018/06/07 Python
对python中GUI,Label和Button的实例详解
2019/06/27 Python
解决Python安装时报缺少DLL问题【两种解决方法】
2019/07/15 Python
Flask框架模板渲染操作简单示例
2019/07/31 Python
python 爬取B站原视频的实例代码
2020/09/09 Python
移动端rem布局的两种实现方法
2018/01/03 HTML / CSS
计算机专业毕业生的自我评价
2013/11/18 职场文书
大学生的应聘自我评价
2013/12/13 职场文书
社团个人总结范文
2015/03/05 职场文书
四群教育工作总结
2015/08/10 职场文书
ubuntu安装jupyter并设置远程访问的实现
2022/03/31 Python