PHP调用json_encode生成JSON时如何去除data字段外层数组方括号
问题原因
你当前代码中每次循环都将包含币种符号键的单元素数组追加到$data['data']索引数组中,因此json_encode后data字段会生成方括号包裹的数组结构,每个元素是单独的{币种:属性}对象,不符合预期。
修改方案
直接将币种符号作为$data['data']的关联键,对应赋值币种属性数组即可:
<?php echo '<script type="text/javascript">'; $data = array( 'base' => 'USD', 'alter' => 'ETH', 'data' => array() ); foreach ($cryptos as $row) { $sy = $row["symbol"]; // 核心修改:直接给data下的$sy键赋值,不需要额外嵌套一层数组 $data['data'][$sy] = [ "rate" => 1.552000000000000, "min" => 1.0077600000000000, "max" => 10.077600000000000, "code" => $row["symbol"], "dp" => 8 ]; } // 如果需要保证空data场景下也输出对象结构,可添加JSON_FORCE_OBJECT参数:json_encode($data, JSON_FORCE_OBJECT) print_r("var fxCur = " . json_encode($data));
修改后$data['data']为PHP关联数组,json_encode后会自动转为JSON对象格式,完全匹配你期望的输出结构。
内容的提问来源于stack exchange,提问作者onuwa3
相关产品推荐
相关产品推荐

