$arr = [
'a' => 'a',
0 => 1,
[
1,
'b' => 'b',
[
1,
'c'
]
]
];
/**
* 仿PHP原生json_encode函数
* @param array $arr 数组
* @return string 返回json字符串
*/
function json_encode2(array $arr): string
{
$a = ''; // {}
$b = ''; // []
$c = 0;
$d = true;
foreach ($arr as $key => $value) {
if ($key !== $c) $d = false;
if (is_array($value)) {
$tmp = json_encode2($value);
$a .= ',"' . $key . '":' . $tmp;
$b .= ',' . $tmp;
} elseif (is_string($value)) {
$a .= ',"' . $key . '":"' . $value . '"';
$b .= ',"' . $value . '"';
} elseif (is_int($value)) {
$a .= ',"' . $key . '":' . $value;
$b .= ',' . $value;
} else {
die('数组格式错误');
}
++ $c;
}
if ($d) {
$json_str = '[' . substr($b, 1) . ']';
} else {
$json_str = '{' . substr($a, 1) . '}';
}
return $json_str;
}
v('系统函数json_encode:' . json_encode($arr));
v('自定义函数json_encode2:' . json_encode2($arr));
以下为运行结果: