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编写大型网站问题集
Mar 06 PHP
PHP操作文件类的函数代码(文件和文件夹创建,复制,移动和删除)
Nov 10 PHP
PHP数组 为文章加关键字连接 文章内容自动加链接
Dec 29 PHP
php目录遍历函数opendir用法实例
Nov 20 PHP
php中解析带中文字符的url函数分享
Jan 20 PHP
php实现过滤字符串中的中文和数字实例
Jul 29 PHP
Zend Framework实现多服务器共享SESSION数据的方法
Mar 22 PHP
什么是OneThink oneThink后台添加插件步骤
Apr 13 PHP
PHP使用php-resque库配合Redis实现MQ消息队列的教程
Jun 29 PHP
关于 Laravel Redis 多个进程同时取队列问题详解
Dec 25 PHP
PHP PDO数据库操作预处理与注意事项
Mar 16 PHP
php 文件上传至OSS及删除远程阿里云OSS文件
Jul 04 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
人大复印资料处理程序_输入篇
2006/10/09 PHP
php中使用addslashes函数报错问题的解决方法
2013/02/06 PHP
php类常量的使用详解
2013/06/08 PHP
腾讯QQ微博API接口获取微博内容
2013/10/30 PHP
yii框架通过控制台命令创建定时任务示例
2014/04/30 PHP
php使用pdo连接mssql server数据库实例
2014/12/25 PHP
支持中文的PHP按字符串长度分割成数组代码
2015/05/17 PHP
PHP 5.6.11中CURL模块问题的解决方法
2016/08/08 PHP
php在windows环境下获得cpu内存实时使用率(推荐)
2018/02/08 PHP
jquery 查找select ,并触发事件的实现代码
2011/03/30 Javascript
基于jQuery替换table中的内容并显示进度条的代码
2011/08/02 Javascript
jQuery学习笔记 操作jQuery对象 文档处理
2012/09/19 Javascript
js中call与apply的用法小结
2013/12/28 Javascript
jquery mobile 实现自定义confirm确认框效果的简单实例
2016/06/17 Javascript
基于jQuery实现弹幕APP
2017/02/10 Javascript
Vue.js仿Metronic高级表格(一)静态设计
2017/04/17 Javascript
js基于FileSaver.js 浏览器导出Excel文件的示例
2017/08/15 Javascript
微信小程序实现点击按钮移动view标签的位置功能示例【附demo源码下载】
2017/12/06 Javascript
如何去除富文本中的html标签及vue、react、微信小程序中的过滤器
2018/11/21 Javascript
Jquery的Ajax技术使用方法
2019/01/21 jQuery
vue如何实现自定义底部菜单栏
2019/07/01 Javascript
[05:03]显微镜下的DOTA2第十期——Ti3豪之超神幽鬼
2014/06/23 DOTA
[58:42]DOTA2上海特级锦标赛C组败者赛 Newbee VS Archon第一局
2016/02/27 DOTA
[06:15]2016国际邀请赛中国区预选赛单车采访:我顶WINGS
2016/06/27 DOTA
解析python 类方法、对象方法、静态方法
2020/08/15 Python
python tkinter实现连连看游戏
2020/11/16 Python
2分钟教你实现环形/扇形菜单(基础版)
2020/01/15 HTML / CSS
css3媒体查询中device-width和width的区别详解
2020/03/27 HTML / CSS
HTML5中5个简单实用的API(第二篇,含全屏、可见性、拍照、预加载、电池状态)
2014/05/07 HTML / CSS
瑞典网上购买现代和复古家具:Reforma
2019/10/21 全球购物
存储过程和sql语句的优缺点
2014/07/02 面试题
法学自荐信
2014/06/20 职场文书
迎国庆演讲稿
2014/09/05 职场文书
2014年客服工作总结与计划
2014/12/09 职场文书
单位介绍信格式范文
2015/05/04 职场文书
新闻稿怎么写
2015/07/18 职场文书