php递归json类实例

本文实例讲述了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程序设计有所帮助。

(0)

相关推荐

  • php数组转成json格式的方法

    本文实例讲述了php数组转成json格式的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: function array_to_json( $array ){     if( !is_array( $array ) ){         return false;     }     $associative = count( array_diff( array_keys($array), array_keys( array_keys( $array )) ));     i

  • PHP生成json和xml类型接口数据格式

    php生成接口通信数据 /** * 生成接口数据格式 */ class Response{ /** * [show 按综合方式输出数据] * @param [int] $code [状态码] * @param [string] $message [提示信息] * @param array $data [数据] * @param [string] $type [类型] * @return [string] [返回值] */ public static function show($code, $m

  • 浅谈PHP中JSON数据操作

    JSON,全称是JavaScript Object Notation.它是基于JavaScript编程语言ECMA-262 3rd Edition-December 1999标准的一种轻量级的数据交换格式,主要用于跟服务器进行交换数据.跟XML相类似,它独立语言,在跨平台数据传输上有很大的优势 新建文件json.php,先做encode操作: //encode //生成JSON格式数据 $arr = array(1,2,3,4,5,6,7,8,9,'Hello','PHP'); echo jso

  • php中JSON的使用方法

    从5.2版本开始,PHP原生提供json_encode()和json_decode()函数,前者用于编码,后者用于解码. json_encode()                                                                       该函数主要用来将数组和对象,转换为json格式. 复制代码 代码如下: $arr = array ('a'=>'a','b'=>'b','c'='c','d'=>'d','e'='e'); echo j

  • php获取json数据所有的节点路径

    之前我们讲解过使用javascript获取json数据节点路径的问题,今天我们更进一步,讲解下php获取json数据所有的节点路径 <?php function iterTree($data) { $retData = array(); $data = json_decode($data, true); if (!is_array($data) && empty($data)) { echo 'error !' ."n"; } else { $queue = ar

  • php中JSON的使用与转换

    在之前我写过php返回json数据简单实例,刚刚上网,突然发现一篇文章,也是介绍json的,还挺详细,值得参考.内容如下 从5.2版本开始,PHP原生提供json_encode()和json_decode()函数,前者用于编码,后者用于解码. 一.json_encode() 复制代码 代码如下: <?php $arr = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5); echo json_encode($arr); ?> 输

  • PHP实现返回JSON和XML的类分享

    代码很简洁,功能也很简单实用,这里就不多废话了,直接奉上代码: 复制代码 代码如下: <?php     class Reponse{         //private $result = array('code'=null,'message'=null,'data'=>null);         /**          * @desc 返回JSON格式          * @param int $code          * @param string $message      

  • PHP实现的json类实例

    本文实例讲述了PHP实现的json类.分享给大家供大家参考.具体如下: 这里注意json_encode只有(PHP 5 >= 5.2.0, PECL json >= 1.2.0)才有 <?php /* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */ /** * Converts to and from JSON format. * * JSON (JavaScript Object Notation) is a li

  • php递归json类实例

    本文实例讲述了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 = $arr

  • ASP JSON类文件的使用方法

    而且要使用某个节点的时候要好好的分析,节点的路径一级级的定位.而JSON最大的好处就是,在使用时候可以只需要将数据字符串声明为一个对象,就可以很方便的调用对象中的各成员.也方便在客户端使用Javascript直接调用程序端生成的数据字符串. 使用ASP的人都知道,ASP可以使用两种类型的脚本引擎,那就是VBSCRIPT和JSCRIPT.偶当初学习的时候就根本不知道JSCRIPT,如果知道的话我想我现在就没有必要这么麻烦的将JSON数据使用JSCRIPT转换后,才能在VBSCRIPT中使用.还好两

  • Python加载带有注释的Json文件实例

    由于json文件不支持注释,所以如果在json文件中标记了注释,则使用python中的json.dump()无法加载该json文件. 本文旨在解决当定义"//"为json注释时,如何正确解析有注释的json文件. 程序实现 # encoding: utf-8 import json import re import sys reload(sys) sys.setdefaultencoding('utf8') CAUTION_PRINT_HEAD = 'caution: ' # 创建一个

  • js 递归json树实现根据子id查父id的方法分析

    本文实例讲述了js 递归json树实现根据子id查父id的方法.分享给大家供大家参考,具体如下: 最近做了一个类似用js实现思维导图的功能,作为思维导图,一定会有树状结构的数据产生,在操作里面的节点时会经常需要查找节点 的父节点及父节点. 对于未知层级的树状数据,用for循环是无法实现的,因为不知道要循环几层,那么最合适的方法就是用js递归 界面结构: json数据: "orgTreeData":{ "nodeId":"19A5B", "

  • java TreeUtil菜单递归工具类

    本文实例为大家分享了java TreeUtil菜单递归工具类的具体代码,供大家参考,具体内容如下 菜单树(详细) package com.admin.manager.storeService.util; import com.admin.manager.storeService.entity.Menu; import java.util.ArrayList; import java.util.List; /** * @author m * @date 2019/12/16 */ public c

  • Android常用正则表达式验证工具类(实例代码)

    东西不多,但一般项目够用了. public class RegularUtil { //身份证 public static final String REGEX_ID_CARD = "^[1-9]\\d{5}[1-9]\\d{3}((0\\d)|(1[0-2]))(([0|1|2]\\d)|3[0-1])\\d{3}([0-9]|X)$"; //验证邮箱 public static final String REGEX_EMAIL = "^([a-z0-9A-Z]+[-|\\

  • ASP JSON类源码分享

    复制代码 代码如下: <% '============================================================ ' 文件名称 : /Cls_Json.asp ' 文件作用 : 系统JSON类文件 ' 文件版本 : VBS JSON(JavaScript Object Notation) Version 2.0.2 ' 程序修改 : Cloud.L ' 最后更新 : 2009-05-12 '==================================

  • Ruby类实例变量、类实例方法和类变量、类方法的区别

    在Ruby中类实例变量.类实例方法和类变量.类方法的区别比较微妙,而且用法也有相当的区别.本文探讨一下他们的定义和基本的使用场景,以抛砖引玉...   一.类实例变量和类变量   类变量大家都很熟悉了,就是在类定义中用@@开头的变量.类变量是用于存储类的全局信息,它只属于类,不同与类实例变量(即用@开头定义的变量)每一个类的对象都有一份数据. 类变量是可以被继承的,也就是说如果我们派生一个子类,那么在子类中是可以访问父类的类变量的.子类和父类共享一份数据,对一个类的修改会反映到另一个类中.如下边

  • HttpUtils 发送http请求工具类(实例讲解)

    废话不多说,直接上代码 import java.io.IOException; import java.io.UnsupportedEncodingException; import java.net.URISyntaxException; import java.util.ArrayList; import java.util.Map; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFac

随机推荐