php 递归json的类代码
下面给大家提供一个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 = "{" . 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;
}
}
?>教程链接:http://www.phprm.com/code/58763.html
随意转载~但请保留教程地址★