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 08 PHP
PHP中怎样保持SESSION不过期 原理及方案介绍
Aug 08 PHP
php foreach循环中使用引用的问题
Nov 06 PHP
php读取文件内容的三种可行方法示例介绍
Feb 08 PHP
PHP处理SQL脚本文件导入到MySQL的代码实例
Mar 17 PHP
php中的四舍五入函数代码(floor函数、ceil函数、round与intval)
Jul 14 PHP
ThinkPHP登录功能的实现方法
Aug 20 PHP
详解PHP实现异步调用的4种方法
Mar 14 PHP
thinkphp3.x自定义Action、Model及View的简单实现方法
May 19 PHP
Netbeans 8.2将支持PHP7 更精彩
Jun 13 PHP
PHP实现八皇后算法
May 06 PHP
php 获取音视频时长,PHP 利用getid3 获取音频文件时长等数据
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中如何使对象可以像数组一样进行foreach循环
2013/08/09 PHP
PHP实现查询手机归属地的方法详解
2017/04/28 PHP
iframe 父窗口和子窗口相互的调用方法集锦
2010/12/15 Javascript
一个封装js代码-----展开收起效果示例
2013/07/03 Javascript
JavaScript中json使用自己总结
2013/08/13 Javascript
js判断设备是否为PC并调整图片大小
2014/02/12 Javascript
jQuery拖拽插件gridster使用指南
2015/04/21 Javascript
详解Bootstrap的aria-label和aria-labelledby应用
2016/01/04 Javascript
js+css绘制颜色动态变化的圈中圈效果
2016/01/27 Javascript
Bootstrap源码解读表单(2)
2016/12/22 Javascript
js实现简单的网页换肤效果
2017/01/18 Javascript
JS实现touch 点击滑动轮播实例代码
2017/01/19 Javascript
jQuery插件jquery.kxbdmarquee.js实现无缝滚动效果
2017/02/15 Javascript
Require.JS中的几种define定义方式示例
2017/06/01 Javascript
JavaScript实现图片无缝滚动效果
2017/07/07 Javascript
node实现简单的反向代理服务器
2017/07/26 Javascript
vue.js 实现图片本地预览 裁剪 压缩 上传功能
2018/03/01 Javascript
bootstrap模态框弹出和隐藏,动态改变中间内容的实例
2018/08/10 Javascript
vue加载完成后的回调函数方法
2018/09/07 Javascript
基于Element的组件改造的树形选择器(树形下拉框)
2020/02/27 Javascript
如何使用vue slot创建一个模态框的实例代码
2020/05/24 Javascript
javascript实现贪吃蛇游戏(娱乐版)
2020/08/17 Javascript
原生JS实现pc端轮播图效果
2020/12/21 Javascript
如何在Python中实现goto语句的方法
2019/05/18 Python
Python一键安装全部依赖包的方法
2019/08/12 Python
python生成器用法实例详解
2019/11/22 Python
TensorFlow实现保存训练模型为pd文件并恢复
2020/02/06 Python
如何使用python切换hosts文件
2020/04/29 Python
阿里巴巴的Oracle DBA笔试题答案-SQL tuning类
2016/04/03 面试题
给老婆的搞笑检讨书
2014/01/12 职场文书
《蝙蝠和雷达》教学反思
2014/04/23 职场文书
竞选班干部演讲稿600字
2014/08/20 职场文书
爱心募捐感谢信
2015/01/22 职场文书
2015年社区综治宣传月活动总结
2015/03/25 职场文书
党员理论学习心得体会
2016/01/21 职场文书
Python 语言实现六大查找算法
2021/06/30 Python