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 相关文章推荐
基于mysql的论坛(5)
Oct 09 PHP
php下实现农历日历的代码
Mar 07 PHP
php 日期和时间的处理-郑阿奇(续)
Jul 04 PHP
PHP中使用unset销毁变量并内存释放问题
Jul 05 PHP
PHP转换IP地址到真实地址的方法详解
Jun 09 PHP
php生成图形验证码几种方法小结
Aug 15 PHP
Laravel 5框架学习之表单验证
Apr 08 PHP
详解PHP中的Traits
Jul 29 PHP
WordPress中访客登陆实现邮件提醒的PHP脚本实例分享
Dec 14 PHP
WordPress中用于创建以及获取侧边栏的PHP函数讲解
Dec 29 PHP
TP5(thinkPHP5)框架使用ajax实现与后台数据交互的方法小结
Feb 10 PHP
yii 框架实现按天,月,年,自定义时间段统计数据的方法分析
Apr 04 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学习教程之第1天
2008/06/15 PHP
php 表单验证实现代码
2009/03/10 PHP
php后台多用户权限组思路与实现程序代码分享
2012/02/13 PHP
使用phpQuery采集网页的方法
2013/11/13 PHP
destoon网站转移服务器后搜索汉字出现乱码的解决方法
2014/06/21 PHP
PHP内存溢出优化代码详解
2021/02/26 PHP
extjs grid取到数据而不显示的解决
2008/12/29 Javascript
40个新鲜出炉的jQuery 插件和免费教程[上]
2012/07/24 Javascript
JavaScript自定义日期格式化函数详细解析
2014/01/14 Javascript
jQuery性能优化的38个建议
2014/03/04 Javascript
javaScript基础语法介绍
2015/02/28 Javascript
JS 滚动事件window.onscroll与position:fixed写兼容IE6的回到顶部组件
2016/10/10 Javascript
jQuery实现的checkbox级联选择下拉菜单效果示例
2016/12/26 Javascript
基于JavaScript实现的希尔排序算法分析
2017/04/14 Javascript
简单的JS控制button颜色随点击更改的实现方法
2017/04/17 Javascript
JavaScript中的回调函数实例讲解
2019/01/27 Javascript
微信小程序学习笔记之目录结构、基本配置图文详解
2019/03/28 Javascript
微信小程序开发注意指南和优化实践(小结)
2019/06/21 Javascript
微信小程序-可移动菜单的实现过程详解
2019/06/24 Javascript
nuxt.js 在middleware(中间件)中实现路由鉴权操作
2020/11/06 Javascript
[41:12]Liquid vs Secret 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.24
2019/09/10 DOTA
python的多重继承的理解
2017/08/06 Python
Python3多线程基础知识点
2019/02/19 Python
python的turtle库使用详解
2019/05/10 Python
在keras中实现查看其训练loss值
2020/06/16 Python
Tiqets英国:智能手机上的文化和娱乐门票
2019/07/10 全球购物
Linux文件系统类型
2012/02/15 面试题
毕业生教师求职信
2013/10/20 职场文书
志愿者服务感言
2014/02/27 职场文书
团队经理竞聘书
2014/03/31 职场文书
上海世博会志愿者口号
2014/06/17 职场文书
学校教师安全责任书
2014/07/23 职场文书
党员民主评议自我评价
2014/10/20 职场文书
2016年安康杯竞赛活动总结
2016/04/05 职场文书
MySQL里面的子查询的基本使用
2021/08/02 MySQL
一篇文章看懂MySQL主从复制与读写分离
2021/11/07 MySQL