PHP如何递归实现json类

PHP如何递归实现json类呢?下面是小编给大家提供的实现方法,大家可以参考阅读,更多详情请关注应届毕业生考试网。

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 = "{"($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 = "["($str,",")."]";

return $str;

}

//检验一个数组是不是严格数字索引

public function TypeArr($arr)

{

if(array_values($arr) === $arr) return true;

return false;

}

}

?>