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

PHP项目中QuickChart如何加载外部数组数据并解决转换报错

问题原因

报错是因为你直接将PHP数组$data放入双引号包裹的字符串中,PHP会尝试将数组转为字符串,默认只会输出Array而非你需要的数组格式内容,同时抛出数组转字符串的提示。

解决方案

方案1(推荐):先构建PHP配置数组,再统一转JSON格式

该方式不需要手动拼接字符串,可完全避免JSON语法错误,适合所有动态数据场景:

<?php
require_once('QuickChart.php');  

$qc = new QuickChart();
$data = array(50, 60, 70, 180);  

// 把整个配置写成PHP数组
$config = [
    'type' => 'bar',
    'data' => [
        'labels' => ['Q1', 'Q2', 'Q3', 'Q4'],
        'datasets' => [
            [
                'label' => 'Users',
                'data' => $data
            ]
        ]
    ]
];

// 转成JSON字符串传给setConfig
$qc->setConfig(json_encode($config));

$a = $qc->getUrl();
$imageData = base64_encode(file_get_contents($a));
echo '<img src="data:image/jpeg;base64,'.$imageData.'">';
?>

方案2:单独对$data数组做JSON转码后拼接

如果不想修改原有字符串写法,只需要把数组转成符合JSON格式的字符串再插入即可:

<?php
require_once('QuickChart.php');  

$qc = new QuickChart();
$data = array(50, 60, 70, 180);  
// 先把数组转成符合JSON格式的字符串
$jsonData = json_encode($data);
$qc->setConfig("{
  type: 'bar',
  data: {
    labels: ['Q1', 'Q2', 'Q3', 'Q4'],
    datasets: [{
      label: 'Users',
      data: $jsonData
    }]
  }
}");

$a = $qc->getUrl();
$imageData = base64_encode(file_get_contents($a));
echo '<img src="data:image/jpeg;base64,'.$imageData.'">';
?>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 13:54:03