计算机教程

当前位置:3522.com > 计算机教程 > php 递归json的类代码

php 递归json的类代码

来源:http://www.4sports-uk.com 作者:3522.com 时间:2019-08-10 15:44

本文实例讲述了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;
 }
 
}
?>

复制代码 代码如下:

本文由3522.com发布于计算机教程,转载请注明出处:php 递归json的类代码

关键词: 3522.com

上一篇:php设置静态内容缓存时间的方法

下一篇:没有了