VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > PHP >
  • php 递归json的类代码

  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. ?> 
  93.  

出处:http://www.phpfensi.com/php/20140626/3539.html


相关教程