当前位置:首页 > PHP教程 > php类库 > 列表

php 递归json的类代码

发布:smiling 来源: PHP粉丝网  添加日期:2014-06-26 08:36:24 浏览: 评论:0 
  1. <?php 
  2. /*  
  3.  * @ anthor:QD 
  4.  * @ time:  2013-09-27 
  5.  */ 
  6. class json{ 
  7.   
  8.  private $Arr = array(); //传入数组 
  9.   
  10.  //构造器 
  11.  public function json($array
  12.  { 
  13.   if(!is_array($array)) return false; 
  14.   $this->Arr = $array
  15.  } 
  16.  //解析主函数 
  17.  public function MainArr() 
  18.  { 
  19.   $arr = $this->Arr; 
  20.   if($this->TypeArr($arr)) 
  21.   { 
  22.    $json = $this->NumArr($arr); 
  23.   } 
  24.   else 
  25.   { 
  26.    $json = $this->IndexArr($arr); 
  27.   } 
  28.   return $json
  29.   
  30.  } 
  31.  //解析索引数组 
  32.  public function IndexArr($arr
  33.  { 
  34.   $str =""
  35.   foreach($arr as $k=>$value
  36.   { 
  37.    if(is_array($value)) 
  38.    { 
  39.     if($this->TypeArr($value)) { $sun=$this->NumArr($value);} 
  40.     else               {$sun=$this->IndexArr($value);} 
  41.     if(strpos($sun,"}") || strpos($sun,"]")) 
  42.     { 
  43.      $str .= """.$k."":".$sun.","
  44.     } 
  45.     else 
  46.     { 
  47.      $str .= """.$k."":"".$sun."","
  48.     } 
  49.    } 
  50.    else 
  51.    { 
  52.      $str .= """.$k."":"".$value."","
  53.    } 
  54.   } 
  55.   $str = "{".trim($str,",")."}"
  56.   return $str
  57.  } 
  58.  //解析数字数组 
  59.  public function NumArr($arr)  
  60.  { 
  61.   $str = ""
  62.   foreach($arr as $value
  63.   { 
  64.    if(is_array($value)) 
  65.    { 
  66.     if($this->TypeArr($value)) { $sun=$this->NumArr($value);} 
  67.     else               {$sun=$this->IndexArr($value);} 
  68.     if(strpos($sun,"}") || strpos($sun,"]")) 
  69.     { 
  70.      $str .= $sun.","
  71.     } 
  72.     else 
  73.     { 
  74.      $str .= """.$sun."","
  75.     } 
  76.    } 
  77.    else 
  78.    { 
  79.     $str .= """.$value."","
  80.    } 
  81.   } 
  82.   $str = "[".trim($str,",")."]"
  83.   return $str
  84.  } 
  85.  //检验一个数组是不是严格数字索引    
  86.  public function TypeArr($arr
  87.  { 
  88.   if(array_values($arr) === $arrreturn true; 
  89.   return false; 
  90.  } 
  91.   
  92. ?> 

Tags: php 递归json类

分享到: