PHP API开发:如何去除返回结果中变量值的引号?
解决PHP API返回结果中数值带引号的问题
你用str_replace去引号没用,核心原因是**$seeing[$i]、$transparency[$i]本身是字符串类型**——返回结果里的引号是JSON编码时自动给字符串加的,不是值本身带引号。要去掉这些引号,得把字符串转成数字类型,JSON序列化时就不会给数字加引号了。
另外先提一句:你原代码里的数组语法有错误,"seeing" => $seeing[$i]),这里多了个右括号,会导致语法报错,得先修正这个问题。
修正后的代码
for ($i = 0; $i < 48; $i += 1) { $hourly[$i] = array( "seeing" => (float)$seeing[$i], "transparency" => (float)$transparency[$i], "time" => $timeforapi[$i] ); }
关键说明
- 用
(float)强制把字符串转成浮点数字类型,如果你的值是整数,也可以用(int)或者intval()、floatval()函数。 - 转成数字类型后,当你用
json_encode()输出API结果时,这些值会以纯数字形式呈现,不再带引号。
修正后返回的JSON会变成:
"hourly": [ { "seeing": 1.2, "transparency": 0.5, "time": 1672074000 }, ... ]
内容的提问来源于stack exchange,提问作者user15505180
相关产品推荐
相关产品推荐

