php递归json类分享 | ||||||||||||||||
以下是三零网为大家整理的最新php递归json类分享的文章,希望大家能够喜欢!在这里为大家带来一篇php递归json 类分享。希望对您的学习PHP有所帮助。 具体实现代码如下: <?php 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; } } ?>
|