You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CodeIgniter控制器如何输出指定格式的price嵌套数组JSON数据

解决方案

问题原因

你从模型查询得到的$invoices是每一项包含date_issued、grand_total字段的对象/关联数组集合,未经过结构转换直接序列化,自然会输出键值对格式的对象数组,和你预期的嵌套索引数组结构不符。同时你调用json_encode时传入的第二个参数TRUE是错误用法,该参数接收JSON常量位掩码,TRUE等价于整数1对应JSON_HEX_TAG,不需要特殊转义时无需传入。

解决代码

$invoices = $this->invoice_model->getAllData2(logged('company_id'));
$priceData = [];

foreach ($invoices as $item) {
    // 日期字符串转毫秒级时间戳
    $timestamp = strtotime($item->date_issued) * 1000;
    // 金额字符串转浮点型
    $amount = (float)$item->grand_total;
    // 组装成索引数组格式
    $priceData[] = [$timestamp, $amount];
}

$response['price'] = $priceData;
// 如果需要格式化输出方便调试,可以传入JSON_PRETTY_PRINT参数
echo json_encode($response);

注意事项

  • 如果你的模型返回的是关联数组而非对象,将代码中$item->date_issued、$item->grand_total改为$item['date_issued']、$item['grand_total']即可
  • 序列化后的输出默认是压缩格式,如果需要和示例一样的格式化缩进,把最后一行改为echo json_encode($response, JSON_PRETTY_PRINT);

内容的提问来源于stack exchange,提问作者angel1108

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 20:45:08