zoukankan      html  css  js  c++  java
  • php递归json类实例代码

    这篇文章主要介绍了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; 
     } 
    } 
    ?>
  • 相关阅读:
    IIS 安装 pydio
    Windows环境配置Apache+Mysql+PHP
    Azure 云平台用 SQOOP 将 SQL server 2012 数据表导入 HIVE / HBASE
    PHP 启动 cURL模块以及启动失败的解决方案
    NodeJS 各websocket框架性能分析
    使用AndroidStudio编译NDK的方法及错误解决方案
    Ubuntu 系统下 mongodb 安装和配置
    Ubuntu安装nodeJS
    node.js应用Redis数据库
    Android平台相机接口的应用
  • 原文地址:https://www.cnblogs.com/huhangfei/p/4991794.html
Copyright © 2011-2022 走看看