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的特殊设置
Oct 09 PHP
PHP学习之PHP变量
Oct 09 PHP
php 上传文件类型判断函数(避免上传漏洞 )
Jun 08 PHP
PHP实现多条件查询实例代码
Jul 17 PHP
php 解决旧系统 查出所有数据分页的类
Aug 27 PHP
基于AppServ,XAMPP,WAMP配置php.ini去掉警告信息(NOTICE)的方法详解
May 07 PHP
Smarty foreach控制循环次数的实现详解
Jul 03 PHP
PHP字符串中特殊符号的过滤方法介绍
Feb 18 PHP
PHP Session机制简介及用法
Aug 19 PHP
php的ddos攻击解决方法
Jan 08 PHP
PHP实现指定字段的多维数组排序函数分享
Mar 09 PHP
php获取手机端的号码以及ip地址实例代码
Sep 12 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函数的方法
2013/11/13 PHP
YII Framework框架教程之安全方案详解
2016/03/14 PHP
js 页面关闭前的出现提示的实现代码
2011/05/25 Javascript
自编jQuery插件实现模拟alert和confirm
2014/09/01 Javascript
Node.js中的process.nextTick使用实例
2015/06/25 Javascript
js实现兼容性好的微软官网导航下拉菜单效果
2015/09/07 Javascript
jquery中ajax跨域方法实例分析
2015/12/18 Javascript
Bootstrap 附加导航(Affix)插件实例详解
2016/06/01 Javascript
JS+HTML5手机开发之滚动和惯性缓动实现方法分析
2016/06/12 Javascript
js返回顶部实例分享
2016/12/21 Javascript
利用nodejs监控文件变化并使用sftp上传到服务器
2017/02/18 NodeJs
Angular2使用Guard和Resolve进行验证和权限控制
2017/04/24 Javascript
关于javascript作用域的常见面试题分享
2017/06/18 Javascript
利用nodeJs anywhere搭建本地服务器环境的方法
2018/05/12 NodeJs
vscode配置vue下的es6规范自动格式化详解
2019/03/20 Javascript
Vue——前端生成二维码的示例
2020/12/19 Vue.js
[54:56]DOTA2上海特级锦标赛主赛事日 - 5 总决赛Liquid VS Secret第三局
2016/03/06 DOTA
python中迭代器(iterator)用法实例分析
2015/04/29 Python
Python简单获取自身外网IP的方法
2016/09/18 Python
python实现八大排序算法(1)
2017/09/14 Python
python3+PyQt5使用数据库表视图
2018/04/24 Python
对python append 与浅拷贝的实例讲解
2018/05/04 Python
python使用PIL给图片添加文字生成海报示例
2018/08/17 Python
Pandas的read_csv函数参数分析详解
2019/07/02 Python
Django权限控制的使用
2021/01/07 Python
html5写一个BUI折叠菜单插件的实现方法
2019/09/11 HTML / CSS
html5 canvas 实现光线沿不规则路径运动
2020/04/20 HTML / CSS
2014年元旦促销活动方案
2014/02/22 职场文书
青年文明号创建承诺
2014/03/31 职场文书
无偿献血倡议书
2014/04/14 职场文书
党委班子剖析材料
2014/08/21 职场文书
作风建设年活动总结
2014/08/27 职场文书
教师节标语大全
2014/10/07 职场文书
2014年打非治违工作总结
2014/11/13 职场文书
自主招生推荐信格式模板
2015/03/24 职场文书
大学生团支书竞选稿
2015/11/21 职场文书