加入收藏 | 设为首页 | 会员中心 | 我要投稿 黔东南站长网 (https://www.0855zz.com.cn/)- 混合云存储、建站、网络、云计算、应用安全!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php 递归json的类代码

发布时间:2022-06-23 09:07:16 所属栏目:PHP教程 来源:互联网
导读:?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 =
  <?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;
   }
    
  }
  ?> 

(编辑:黔东南站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读