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

如何在SQL查询返回的数组中将Amount从字符串转换为float类型适配Google Charts

问题原因

你之前的写法直接将转换后的值存入索引数组,丢失了Category、Amount的关联键名,导致后续convertDataToChartForm函数读取表头时拿到的是[0,1]而非预期的字段名,因此无法输出符合Google Charts要求的格式。

解决方法

有两种可行方案,推荐第一种,在数据查询阶段就统一处理类型,逻辑更清晰:

方案1:修改getPieChartIncomes中的循环逻辑,保留键名做类型转换

仅修改while循环部分即可,无需改动convertDataToChartForm函数:

while (($row = $stmt->fetch(PDO::FETCH_ASSOC)))
{
    $data[] = [
        'Category' => (string)$row['Category'],
        'Amount' => (float)$row['Amount']
    ];
}

方案2:在convertDataToChartForm中统一处理类型转换

如果你不想改动查询逻辑,也可以把类型转换放到格式转换函数中:

public static function convertDataToChartForm($data)
{
    $newData = array();
    $firstLine = true;

    foreach ($data as $dataRow)
    {
        if ($firstLine)
        {
            $newData[] = array_keys($dataRow);
            $firstLine = false;
        }

        $newData[] = [
            (string)$dataRow['Category'],
            (float)$dataRow['Amount']
        ];
    }

    return $newData;
}

输出验证

修改后json_encode($chartIncomesArray)的输出将符合Google Charts要求,格式为:

[["Category","Amount"],["wynagrodzenie",12.0],["odsetki",50.0]]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 07:15:03