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 4.2书写安全的脚本
Oct 09 PHP
php用数组返回无限分类的列表数据的代码
Aug 08 PHP
纯php打造的tab选项卡效果代码(不用js)
Dec 29 PHP
php中使用Imagick实现图像直方图的实现代码
Aug 30 PHP
基于PHP5魔术常量与魔术方法的详解
Jun 13 PHP
PHP计算2点经纬度之间的距离代码
Aug 12 PHP
使用PHP和HTML5 FormData实现无刷新文件上传教程
Sep 06 PHP
微信API接口大全
Apr 15 PHP
带你了解PHP7 性能翻倍的关键
Nov 19 PHP
laravel框架模型中非静态方法也能静态调用的原理分析
Nov 23 PHP
在 Laravel 6 中缓存数据库查询结果的方法
Dec 11 PHP
PHP实现Markdown文章上传到七牛图床的实例内容
Feb 11 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
在普通HTTP上安全地传输密码
2007/07/21 PHP
PHP 5.0对象模型深度探索之对象复制
2008/03/27 PHP
WAMP环境中扩展oracle函数库(oci)
2015/06/26 PHP
JS版网站风格切换实例代码
2008/10/06 Javascript
javascript 冒泡排序 正序和倒序实现代码
2010/12/14 Javascript
使用jQuery清空file文件域的解决方案
2013/04/12 Javascript
js 弹出新页面避免被浏览器、ad拦截的一种新方法
2014/04/30 Javascript
Javascript堆排序算法详解
2014/12/03 Javascript
jQuery中is()方法用法实例
2015/01/06 Javascript
jQuery实现下滑菜单导航效果代码
2015/08/25 Javascript
纯javascript实现分页(两种方法)
2015/08/26 Javascript
jquery采用oop模式class类的使用示例
2016/01/22 Javascript
浅谈angular4 ng-content 中隐藏的内容
2017/08/18 Javascript
bootstrap3-dialog-master模态框使用详解
2017/08/22 Javascript
基于jQuery实现无缝轮播与左右点击效果
2018/05/13 jQuery
记一次webapck4 配置文件无效的解决历程
2018/09/19 Javascript
javascript实现blob加密视频源地址的方法
2019/08/08 Javascript
浅析微信小程序modal弹窗关闭默认会执行cancel问题
2019/10/14 Javascript
Weex开发之地图篇的具体使用
2019/10/16 Javascript
js实现淘宝首页的banner栏效果
2019/11/26 Javascript
js实现搜索提示框效果
2020/09/05 Javascript
Python八大常见排序算法定义、实现及时间消耗效率分析
2018/04/27 Python
浅析python中numpy包中的argsort函数的使用
2018/08/30 Python
python实现简单日期工具类
2019/04/24 Python
python动态视频下载器的实现方法
2019/09/16 Python
Python中if有多个条件处理方法
2020/02/26 Python
k-means 聚类算法与Python实现代码
2020/06/01 Python
利用纯CSS3实现文字向右循环闪过效果实例(可用于移动端)
2017/06/15 HTML / CSS
Hoka One One法国官网:美国专业跑鞋品牌
2018/12/29 全球购物
保险专业自荐信范文
2014/02/20 职场文书
大学生会计职业生涯规划范文
2014/02/28 职场文书
高中生职业规划范文
2014/03/09 职场文书
人事行政经理岗位职责
2014/06/18 职场文书
群众路线领导对照材料
2014/08/23 职场文书
《你在为谁工作》心得体会(共8篇)
2016/01/20 职场文书
如何用PHP实现分布算法之一致性哈希算法
2021/05/26 PHP