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遍历文件夹所有文件子文件夹函数代码
Nov 27 PHP
php实现图片缩放功能类
Dec 18 PHP
destoon调用discuz论坛中带图片帖子的实现方法
Aug 21 PHP
ThinkPHP表单自动验证实例
Oct 13 PHP
Laravel 5 框架入门(一)
Apr 09 PHP
如何利用http协议发布博客园博文评论
Aug 03 PHP
CI框架简单邮件发送类实例
May 18 PHP
PHP Callable强制指定回调类型的方法
Aug 30 PHP
PHP自定义错误用法示例
Sep 28 PHP
ThinkPHP发送邮件示例代码
Oct 08 PHP
PHP面向对象程序设计组合模式与装饰模式详解
Dec 02 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
Ajax实时验证用户名/邮箱等是否已经存在的代码打包
2011/12/01 PHP
php实现获取及设置用户访问页面语言类
2014/09/24 PHP
PHP之sprintf函数用法详解
2014/11/12 PHP
PHPStorm 2020.1 调试 Nodejs的多种方法详解
2020/09/17 NodeJs
String.prototype实现的一些javascript函数介绍
2013/11/22 Javascript
兼容所有浏览器的js复制插件Zero使用介绍
2014/03/19 Javascript
js实现图片放大和拖拽特效代码分享
2015/09/05 Javascript
自己动手制作基于jQuery的Web页面加载进度条插件
2016/06/03 Javascript
Bootstrap表单控件学习使用
2017/03/07 Javascript
Form表单上传文件(type=&quot;file&quot;)的使用
2017/08/03 Javascript
JS实现的简单表单验证功能示例
2017/10/13 Javascript
微信小程序实现鼠标拖动效果示例
2017/12/01 Javascript
nodejs结合Socket.IO实现的即时通讯功能详解
2018/01/12 NodeJs
解决angularjs WdatePicker ng-model的问题
2018/09/13 Javascript
微信小程序实现点赞、取消点赞功能
2018/11/02 Javascript
js实现类似iphone的网页滑屏解锁功能示例【附源码下载】
2019/06/10 Javascript
vue中使用[provide/inject]实现页面reload的方法
2019/09/30 Javascript
js实现上传按钮并显示缩略图小轮子
2020/05/04 Javascript
python 全文检索引擎详解
2017/04/25 Python
Python列表推导式、字典推导式与集合推导式用法实例分析
2018/02/07 Python
详解python中asyncio模块
2018/03/03 Python
Python实现去除列表中重复元素的方法小结【4种方法】
2018/04/27 Python
python 实现提取log文件中的关键句子,并进行统计分析
2019/12/24 Python
Python中常用的高阶函数实例详解
2020/02/21 Python
Python操作Jira库常用方法解析
2020/04/10 Python
CSS3弹性盒模型flex box快速入门心得(必看篇)
2016/05/24 HTML / CSS
html5版canvas自由拼图实例
2014/10/15 HTML / CSS
前端实现打印图像功能
2019/08/27 HTML / CSS
Reebonz中国官网:新加坡奢侈品购物网站
2017/03/17 全球购物
屈臣氏马来西亚官网:Watsons马来西亚
2019/06/15 全球购物
尊老爱亲美德少年事迹材料
2014/08/14 职场文书
2014年仓管员工作总结
2014/11/18 职场文书
2015年网管个人工作总结
2015/05/22 职场文书
2015年中学团委工作总结
2015/07/22 职场文书
关于springboot 配置date字段返回时间戳的问题
2021/07/25 Java/Android
一篇文章了解正则表达式的替换技巧
2022/02/24 Javascript