跳转到主内容
新派编程网 - 新潮编程理念,全新技术课堂!

php 递归json的类代码

下面给大家提供一个json递归解析类了,希望此例子对各位同学会带来帮助哦,其它费话也不说多了直接上代码代码如下复制代码/** @ 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;}}?>

相关文章