只有写一个递归函数,如果数据被转为float且有E+的时候,再把他转成字符串
private function filter_jsonarr($arr) { if(is_array($arr)){ foreach($arr as $k => $v) { $arr[$k] = $this->filter_jsonarr($v); } return $arr; } else { if(is_float($arr) && strpos($arr, 'E+') !== false){ $arr = number_format($arr,0,'',''); } return $arr; } }
还可以使用json_decode的第三个参数解决
$result = json_decode($result,true,512, JSON_BIGINT_AS_STRING);