这篇文章主要介绍了php递归json类的实现方法,可以实现对索引数组及数字数组的解析,进而实现递归数组返回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递归json类实例代码的更多相关文章

  1. 简单易用的分页类实例代码PHP

    <?php /*********************************************** * @类名: page * @参数: $myde_total - 总记录数 * $m ...

  2. html便民查询各个工具类实例代码分享(支持pc和移动端)

    1.手机号码查询 <iframe id="api_iframe_51240" name="api_iframe_51240" src="&quo ...

  3. jquery ajax jsonp跨域调用实例代码

    今天研究了AJAX使用JSONP进行跨域调用的方法,发现使用GET方式和POST方式都可以进行跨域调用,这里简单分享下,方便需要的朋友 客户端代码 复制代码 代码如下: <%@ Page Lan ...

  4. C# Oracle数据库操作类实例详解

    本文所述为C#实现的Oracle数据库操作类,可执行超多常用的Oracle数据库操作,包含了基础数据库连接.关闭连接.输出记录集.执行Sql语句,返回带分页功能的dataset .取表里字段的类型和长 ...

  5. DotNetCore学习-1.读取Json配置并绑定到配置类实例

    DotNetCore的程序的配置不再完全局限于XML文件,增加更加通用的Json配置. 读取Json配置文件的类主要在Microsoft.Extensions.Configuration命名空间下,创 ...

  6. JQuery 获取json数据$.getJSON方法的实例代码

    这篇文章介绍了JQuery 获取json数据$.getJSON方法的实例代码,有需要的朋友可以参考一下 前台: function SelectProject() { var a = new Array ...

  7. python3.4学习笔记(二十六) Python 输出json到文件,让json.dumps输出中文 实例代码

    python3.4学习笔记(二十六) Python 输出json到文件,让json.dumps输出中文 实例代码 python的json.dumps方法默认会输出成这种格式"\u535a\u ...

  8. JS表单验证类HTML代码实例

    以前用的比较多的一个JS表单验证类,对于个人来说已经够用了,有兴趣的可以在此基础上扩展成ajax版本.本表单验证类囊括了密码验证.英文4~10个 字符验证. 中文非空验证.大于10小于100的数字.浮 ...

  9. JSON解析实例——使用Json-lib

    JSON解析实例——使用Json-lib Json-lib下载及使用 本文介绍用一个类库进行JSON解析. 工具下载地址:http://sourceforge.net/projects/json-li ...

随机推荐

  1. [转]Delphi 控件属性和事件

    常用[属性] Action:该属性是与组件关联的行为,允许应用程序集中响应用户命令 Anchors:与组件连接的窗体的位置点 Align:确定组件的对齐方式 AutoSize:确定组件是否自动调整其大 ...

  2. Java中final关键字的用法

  3. 30.SSH配置文件模板.md

    [toc] 1.struts2 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts ...

  4. CAS 4.0 配置开发手册(转)

    转:http://blog.csdn.net/ahpo/article/details/46412859 1    下载 地址http://downloads.jasig.org/ cas-serve ...

  5. Hibernate 主键生成策略

    表示符生成器 描述 Increment 由hibernate自动以递增的方式生成表识符,每次增量为1 Identity 由底层数据库生成表识符.条件是数据库支持自动增长数据类型. Sequence H ...

  6. 逆向iOS SDK -- _UIImageAtPath 的实现(SDK 5.1)

    注释过的反汇编代码:http://pan.baidu.com/share/link?shareid=3491166579&uk=537224442 伪代码(不精确,仅供参考): NSStrin ...

  7. javaScript高程第三版读书笔记

    看完<dom编程艺术>现在准备读进阶版的js高程了,由于篇幅较长,所以利用刚看完<dom编程艺术>学到的知识写了段JavaScript代码,来折叠各章的内容.并且应用到了< ...

  8. javascript读取xml的方法【转载】

    jquery读取xml文件 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http ...

  9. php把excel数值格式转成日期格式问题

    在excel中:40847对应2011-10-31,是日期的数值型表现形式. 在PHP中,echo date('Y-m-d H:i:s',40847);//结果1970-01-01 11:52:30 ...

  10. GitHub 入门

    1. CentOS 安装 Github. # sudo yum install skynet 安装之后查看一下版本. # git --version 2. 注册 Github 账号,登录后阅读 Git ...