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下几种删除目录的方法总结
Aug 19 PHP
php中引用符号(&amp;)的使用详解
Nov 13 PHP
php反射应用示例
Feb 25 PHP
php实现的click captcha点击验证码类实例
Sep 23 PHP
PHP实现阳历到农历转换的类实例
Mar 07 PHP
php中header跳转使用include包含解决参数丢失问题
May 08 PHP
PHP如何将log信息写入服务器中的log文件
Jul 29 PHP
PHP对象相关知识总结
Apr 09 PHP
详解php与ethereum客户端交互
Apr 28 PHP
thinkPHP中U方法加密传递参数功能示例
May 29 PHP
PHP中关于php.ini参数优化详解
Feb 28 PHP
php 防护xss,PHP的防御XSS注入的终极解决方案
Apr 01 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中强制下载文件的代码(解决了IE下中文文件名乱码问题)
2011/05/09 PHP
php+redis实现注册、删除、编辑、分页、登录、关注等功能示例
2017/02/15 PHP
[原创]静态页面也可以实现预览 列表不同的显示方式
2006/10/14 Javascript
javascript编程起步(第二课)
2007/02/27 Javascript
JS分页控件 可用于无刷新分页
2013/07/23 Javascript
jquery实现树形二级菜单实例代码
2013/11/20 Javascript
jquery实现的一个文章自定义分段显示功能
2014/05/23 Javascript
iPhone手机上搭建nodejs服务器步骤方法
2015/07/06 NodeJs
JavaScript中removeChild 方法开发示例代码
2016/08/15 Javascript
js 模仿锚点定位的实现方法
2016/11/19 Javascript
基于jQuery实现数字滚动效果
2017/01/16 Javascript
angularjs实现分页和搜索功能
2018/01/03 Javascript
vue2.0.js的多级联动选择器实现方法
2018/02/09 Javascript
JS实现的集合去重,交集,并集,差集功能示例
2018/03/13 Javascript
详解express + mock让前后台并行开发
2018/06/06 Javascript
Vue中this.$nextTick的作用及用法
2020/02/04 Javascript
详解JavaScript之ES5的继承
2020/07/08 Javascript
vue-cli3项目配置eslint代码规范的完整步骤
2020/09/10 Javascript
vue中实现点击变成全屏的多种方法
2020/09/27 Javascript
[47:48]DOTA2上海特级锦标赛D组小组赛#2 Liquid VS VP第三局
2016/02/28 DOTA
python+selenium识别验证码并登录的示例代码
2017/12/21 Python
python实现用户答题功能
2018/01/17 Python
详解Django-channels 实现WebSocket实例
2019/08/22 Python
解决django 向mysql中写入中文字符出错的问题
2020/05/18 Python
浅谈Python 命令行参数argparse写入图片路径操作
2020/07/12 Python
美国最大的万圣节服装网站:HalloweenCostumes.com
2017/10/12 全球购物
EJB3.1都有哪些改进
2012/11/17 面试题
单位创先争优活动方案
2014/01/26 职场文书
党的群众路线教育实践活动宣传方案
2014/02/23 职场文书
无偿献血倡议书
2014/04/14 职场文书
公务员培的训心得体会
2014/09/01 职场文书
学校国庆节活动总结
2015/03/23 职场文书
html css3不拉伸图片显示效果
2021/06/07 HTML / CSS
Nginx stream 配置代理(Nginx TCP/UDP 负载均衡)
2021/11/17 Servers
九大龙王魂骨,山龙王留下躯干骨,榜首死的最憋屈(被捏碎)
2022/03/18 国漫
python模板入门教程之flask Jinja
2022/04/11 Python