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 xml实例 留言本
Mar 20 PHP
php mysql Errcode: 28 终极解决方法
Jul 01 PHP
mysql_num_rows VS COUNT 效率问题分析
Apr 23 PHP
PHP实现自动登入google play下载app report的方法
Sep 23 PHP
Laravel框架实现发送短信验证功能代码
Jun 06 PHP
Yii2创建控制器(createController)方法详解
Jul 23 PHP
PHP 无限级分类
May 04 PHP
PHP仿qq空间或朋友圈发布动态、评论动态、回复评论、删除动态或评论的功能(上)
May 26 PHP
关于PHP中协程和阻塞的一些理解与思考
Aug 11 PHP
laravel5实现微信第三方登录功能
Dec 06 PHP
解决Laravel无法使用COOKIE和SESSION的问题
Oct 16 PHP
php 自定义函数实现将数据 以excel 表格形式导出示例
Nov 13 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
浅谈Windows下 PHP4.0与oracle 8的连接设置
2006/10/09 PHP
PHP 的 __FILE__ 常量
2007/01/15 PHP
PHP中unset,array_splice删除数组中元素的区别
2014/07/28 PHP
php获取textarea的值并处理回车换行的方法
2014/10/20 PHP
PHP中使用数组指针函数操作数组示例
2014/11/19 PHP
Extjs单独定义各组件的实例代码
2013/06/25 Javascript
js取消单选按钮选中并判断对象是否为空
2013/11/14 Javascript
利用js制作html table分页示例(js实现分页)
2014/04/25 Javascript
jQuery选择器源码解读(七):elementMatcher函数
2015/03/31 Javascript
实现音乐播放器的代码(html5+css3+jquery)
2015/08/04 Javascript
12个超实用的JQuery代码片段
2015/11/02 Javascript
微信小程序 wxapp导航 navigator详解
2016/10/31 Javascript
cnpm加速Angular项目创建的方法
2018/09/07 Javascript
nodeJS进程管理器pm2的使用
2019/01/09 NodeJs
vue父组件给子组件的组件传值provide inject的方法
2019/10/23 Javascript
nodejs中使用archive压缩文件的实现代码
2019/11/26 NodeJs
用Angular实现一个扫雷的游戏示例
2020/05/15 Javascript
在Vue中使用Viser说明(基于AntV-G2可视化引擎)
2020/10/28 Javascript
ant design vue 表格table 默认勾选几项的操作
2020/10/31 Javascript
解决Vue大括号字符换行踩的坑
2020/11/09 Javascript
[09:22]2014DOTA2西雅图国际邀请赛 主赛事第二日TOPPLAY
2014/07/21 DOTA
Python修改Excel数据的实例代码
2013/11/01 Python
django认证系统实现自定义权限管理的方法
2018/07/16 Python
Django 导出项目依赖库到 requirements.txt过程解析
2019/08/23 Python
解决Tensorboard可视化错误:不显示数据 No scalar data was found
2020/02/15 Python
完美解决Django2.0中models下的ForeignKey()问题
2020/05/19 Python
python中wheel的用法整理
2020/06/15 Python
美国50岁以上单身人士约会平台:SilverSingles
2018/06/29 全球购物
澳大利亚运动鞋商店:Platypus Shoes
2019/09/27 全球购物
重写子类方法时,抛出异常的书写注意事项
2015/10/17 面试题
自我鉴定模板
2013/10/29 职场文书
xxx同志考察材料
2014/02/07 职场文书
学校消防演习方案
2014/02/19 职场文书
争当四好少年演讲稿
2014/09/13 职场文书
党的群众路线教育实践活动党员个人剖析材料
2014/10/08 职场文书
和领导吃饭祝酒词
2015/08/11 职场文书