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数组实现无限分类,不使用数据库,不使用递归.
Dec 09 PHP
dedecms模版制作使用方法
Apr 03 PHP
discuz图片顺序混乱解决方案
Jul 29 PHP
php给图片添加文字水印方法汇总
Aug 27 PHP
老司机传授Ubuntu下Apache+PHP+MySQL环境搭建攻略
Mar 20 PHP
PHP的AES加密算法完整实例
Jul 20 PHP
php 时间time与日期date之间的使用详解及区别
Nov 07 PHP
php实现36进制与10进制转换功能示例
Jan 10 PHP
php nginx 实时输出的简单实现方法
Jan 21 PHP
PHP实现财务审核通过后返现金额到客户的功能
Jul 04 PHP
ThinkPHP 5.x远程命令执行漏洞复现
Sep 23 PHP
laravel入门知识点整理
Sep 15 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下对数组进行排序的函数
2010/08/08 PHP
PHP 图片上传代码
2011/09/13 PHP
PHP实现删除非站内外部链接实例代码
2014/06/17 PHP
php中出现空白页的原因及解决方法汇总
2014/07/08 PHP
php7安装mongoDB扩展的方法分析
2017/08/02 PHP
面向对象的Javascript之三(封装和信息隐藏)
2012/01/27 Javascript
解决Extjs上传图片无法预览的解决方法
2012/03/22 Javascript
javascript将DOM节点添加到文档的方法实例分析
2015/08/04 Javascript
jquery.mousewheel实现整屏翻屏效果
2015/08/30 Javascript
jQuery实现的超酷苹果风格图标滑出菜单效果代码
2015/09/16 Javascript
jquery利用json实现页面之间传值的实例解析
2016/12/12 Javascript
angular+ionic 的app上拉加载更新数据实现方法
2017/01/16 Javascript
AngularJS的依赖注入实例分析(使用module和injector)
2017/01/19 Javascript
原生js仿淘宝网商品放大镜效果
2017/02/28 Javascript
解决vue同一slot在组件中渲染多次的问题
2018/09/06 Javascript
jQuery实现的简单歌词滚动功能示例
2019/01/07 jQuery
JavaScript基于遍历操作实现对象深拷贝功能示例
2019/03/05 Javascript
vue router 通过路由来实现切换头部标题功能
2019/04/24 Javascript
js简单遍历获取对象中的属性值的方法示例
2019/06/19 Javascript
Python内置的字符串处理函数整理
2013/01/29 Python
python抓取网页图片并放到指定文件夹
2014/04/24 Python
Python对文件和目录进行操作的方法(file对象/os/os.path/shutil 模块)
2017/05/08 Python
python之信息加密题目详解
2019/06/26 Python
python连接mongodb集群方法详解
2020/02/13 Python
Python+OpenCV检测灯光亮点的实现方法
2020/11/02 Python
Rakuten Kobo台湾:电子书、eReaders和Reading应用程式
2017/11/24 全球购物
捷克玩具商店:Bambule
2019/02/23 全球购物
eBay美国官网:eBay.com
2020/10/24 全球购物
Vrbo英国:预订度假屋
2020/08/19 全球购物
俄罗斯第一家多品牌在线奢侈品精品店:Aizel.ru
2020/09/06 全球购物
在C语言中实现抽象数据类型什么方法最好
2014/06/26 面试题
《两个铁球同时着地》教学反思
2014/02/13 职场文书
初中毕业典礼演讲稿
2014/09/09 职场文书
大学生预备党员自我评价
2015/03/04 职场文书
信贷客户经理岗位职责
2015/04/09 职场文书
SQL Server使用导出向导功能
2022/04/08 SQL Server