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 获取客户端的真实ip
Nov 30 PHP
php判断终端是手机还是电脑访问网站的思路及代码
Apr 24 PHP
curl不使用文件存取cookie php使用curl获取cookie示例
Jan 26 PHP
php5.2 Json不能正确处理中文、GB编码的解决方法
Mar 28 PHP
1亿条数据如何分表100张到Mysql数据库中(PHP)
Jul 29 PHP
PHP中key和current,next的联合运用实例分析
Mar 29 PHP
Thinkphp3.2.3分页使用实例解析
Jul 28 PHP
PHP中串行化用法示例
Nov 16 PHP
php socket通信简单实现
Nov 18 PHP
CI框架(CodeIgniter)公共模型类定义与用法示例
Aug 10 PHP
PHP 实现文件压缩解压操作的方法
Jun 14 PHP
Laravel基础_关于view共享数据的示例讲解
Oct 14 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 PDO中文乱码解决办法
2009/07/20 PHP
来自phpguru得Php Cache类源码
2010/04/15 PHP
ThinkPHP3.1新特性之对页面压缩输出的支持
2014/06/19 PHP
thinkphp autoload 命名空间自定义 namespace
2015/07/17 PHP
深入理解PHP的远程多会话调试
2017/09/21 PHP
prototype 的说明 js类
2006/09/07 Javascript
Javascript条件判断使用小技巧总结
2008/09/08 Javascript
JS 动态获取节点代码innerHTML分析 [IE,FF]
2009/11/30 Javascript
js保留小数点后几位的写法
2014/01/03 Javascript
JavaScript jQuery 中定义数组与操作及jquery数组操作
2015/12/18 Javascript
jQuery实现简单的点赞效果
2020/05/29 Javascript
微信小程序 聊天室简单实现
2017/04/19 Javascript
详解AngularJs ui-router 路由的简单介绍
2017/04/26 Javascript
微信小程序 开发之全局配置
2017/05/05 Javascript
Bootstrap实现的标签页内容切换显示效果示例
2017/05/25 Javascript
对TypeScript库进行单元测试的方法
2019/07/18 Javascript
Vue.js组件通信之自定义事件详解
2019/10/19 Javascript
Vue替代marquee标签超出宽度文字横向滚动效果
2019/12/09 Javascript
[23:18]Spirit vs Liquid Supermajor小组赛A组 BO3 第二场 6.2
2018/06/03 DOTA
[01:32:10]NAVI vs VG Supermajor 败者组 BO3 第一场 6.5
2018/06/06 DOTA
详解Python中的array数组模块相关使用
2016/07/05 Python
django之使用celery-把耗时程序放到celery里面执行的方法
2019/07/12 Python
python解释器spython使用及原理解析
2019/08/24 Python
OpenCV里的imshow()和Matplotlib.pyplot的imshow()的实现
2019/11/25 Python
tensorflow使用指定gpu的方法
2020/02/04 Python
如何通过python实现全排列
2020/02/11 Python
全网最细 Python 格式化输出用法讲解(推荐)
2021/01/18 Python
Canvas制作旋转的太极的示例
2018/03/09 HTML / CSS
如何用Lucene索引数据库
2016/02/23 面试题
幼儿园家长会邀请函
2014/01/15 职场文书
爱国演讲稿400字
2014/05/07 职场文书
会计专业自荐书
2014/07/08 职场文书
迎新生欢迎词2015
2015/07/16 职场文书
2019年工作总结范文
2019/05/21 职场文书
小学毕业教师寄语
2019/06/21 职场文书
为什么node.js不适合大型项目
2021/04/28 Javascript