이 기사의 예에서는 PHP 재귀 json 클래스의 구현 방법을 설명합니다. 참고할 수 있도록 모든 사람과 공유하세요.
구체적인 구현 코드는 다음과 같습니다.
/*
* @anthor:QD
* @시각 : 2013-09-27
*/
클래스 JSON{
private $Arr = array(); //배열에 전달
//생성자
공개 함수 json($array)
{
if(!is_array($array)) 반환 false
$this->Arr = $배열
}
//메인 함수 분석
공개 함수 MainArr()
{
$arr = $this->Arr;
if($this->TypeArr($arr))
{
$json = $this->NumArr($arr)
}
그렇지 않으면
{
$json = $this->IndexArr($arr)
}
$json 반환
}
//인덱스 배열 구문 분석
공개 함수 IndexArr($arr)
{
$str=""
foreach($arr as $k=>$value)
{
if(is_array($value))
{
If($this->TypeArr($value)) { $sun=$this->NumArr($value);}
else else {$sun=$this->IndexArr($value);}
If(strpos($sun,"}") || strpos($sun,"]"))
{
$str .= """.$k."":".$sun.","
}
그렇지 않으면
{
$str .= """.$k."":"".$sun."","
}
}
그렇지 않으면
{
$str .= """.$k."":"".$value."","
}
}
$str = "{".trim($str,",")."}"
$str 반환
}
//숫자 배열 구문 분석
공개 함수 NumArr($arr)
{
$str = ""
foreach($arr를 $value로)
{
if(is_array($value))
{
If($this->TypeArr($value)) { $sun=$this->NumArr($value);}
else else {$sun=$this->IndexArr($value);}
If(strpos($sun,"}") || strpos($sun,"]"))
{
$str .= $sun.","
}
그렇지 않으면
{
$str .= """.$sun."","
}
}
그렇지 않으면
{
$str .= """.$value."","
}
}
$str = "[".trim($str,",")."]"
$str 반환
}
//배열이 숫자로 엄격하게 인덱스되어 있는지 확인
공개 함수 TypeArr($arr)
{
if(array_values($arr) === $arr) return true
거짓을 반환
}
}
?>
이 기사가 모든 사람의 PHP 프로그래밍 설계에 도움이 되기를 바랍니다.