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的bbs设计(一)
Oct 09 PHP
编写漂亮的代码 - 将后台程序与前端程序分开
Apr 23 PHP
php 301转向实现代码
Sep 18 PHP
php连接数据库代码应用分析
May 29 PHP
php header Content-Type类型小结
Jul 03 PHP
基于PHP文件操作的详细诠释
Jun 21 PHP
PHP中的替代语法简介
Aug 22 PHP
MyEclipse常用配置图文教程
Sep 11 PHP
nginx+thinkphp下解决不支持pathinfo模式
Jul 01 PHP
解读PHP中的垃圾回收机制
Aug 10 PHP
php处理抢购类功能的高并发请求
Feb 08 PHP
PHP微信发送推送消息乱码的解决方法
Feb 28 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类中的各种拦截器用法分析
2014/11/03 PHP
PHP7多线程搭建教程
2017/04/21 PHP
PHP 中TP5 Request 请求对象的实例详解
2017/07/31 PHP
JS类定义原型方法的两种实现的区别评论很多
2007/09/12 Javascript
Javascript图像处理—虚拟边缘介绍及使用方法
2012/12/27 Javascript
使用POST方式弹出窗口的两种方法示例介绍
2014/01/29 Javascript
javascript中clipboardData对象用法详解
2015/05/13 Javascript
js流动式效果显示当前系统时间
2016/05/16 Javascript
通过BootStrap实现轮播图的实际应用
2016/09/26 Javascript
d3.js中冷门却实用的内置函数总结
2017/02/04 Javascript
jQuery EasyUI ProgressBar进度条组件
2017/02/28 Javascript
JS字符串统计操作示例【遍历,截取,输出,计算】
2017/03/27 Javascript
详解AngularJS controller调用factory
2017/05/19 Javascript
jquery仿京东商品放大浏览页面
2017/06/06 jQuery
微信小程序实现倒计时调用相机自动拍照功能
2018/06/10 Javascript
layUI实现前端分页和后端分页
2019/07/27 Javascript
uniapp开发小程序实现滑动页面控制元素的显示和隐藏效果
2020/12/10 Javascript
[01:32:22]DOTA2-DPC中国联赛 正赛 Ehome vs VG BO3 第一场 2月5日
2021/03/11 DOTA
python实现进程间通信简单实例
2014/07/23 Python
Python xlrd读取excel日期类型的2种方法
2015/04/28 Python
Python使用面向对象方式创建线程实现12306售票系统
2015/12/24 Python
python搭建虚拟环境的步骤详解
2016/09/27 Python
python飞机大战pygame游戏背景设计详解
2019/12/17 Python
13个Pandas实用技巧,助你提高开发效率
2020/08/19 Python
python statsmodel的使用
2020/12/21 Python
幼师岗位求职简历的自荐信格式
2013/09/21 职场文书
物流管理毕业生自荐信
2013/10/24 职场文书
房地产开盘策划方案
2014/02/10 职场文书
计算机学生的自我评价分享
2014/02/18 职场文书
一年级评语大全
2014/04/23 职场文书
离婚协议书的书写要求
2014/09/17 职场文书
团代会邀请函
2015/02/02 职场文书
汽车车尾标语大全
2015/08/11 职场文书
导游词之宿迁乾隆行宫
2019/10/15 职场文书
Pytorch实现图像识别之数字识别(附详细注释)
2021/05/11 Python
分享7个 Python 实战项目练习
2022/03/03 Python