【发布时间】:2018-10-15 18:34:48
【问题描述】:
我一直在尝试将新数据附加到我为 AMchart 创建的 stdClass 对象
我从数据库中返回我想要的所有行,然后创建一个新对象并循环遍历返回的数组,但不是将我想要的内容附加到现有对象的末尾,而是被覆盖。 PHP 对象没有 append 或 push 方法,那么如何实现呢?
这是我的代码的样子。我错过了一些简单的东西吗?
$sql = 'SELECT
count(*) as clients,
STR_TO_DATE(Appt_date, \'%m/%d/%Y\') AS date,
SUM(wait_time) as total_wait_time
FROM tb_by_client
WHERE status = @qualifier
GROUP BY Appt_date';
$rows = $db->fetchAll($sql);
$chartObject = new stdClass();
foreach($rows as $row){
$row->average = round($row->total_wait_time / $row->clients);
$chartObject->date = $row->date;
$chartObject->average = $row->average;
}
$chartArray[] = $chartObject;
return json_encode($chartArray);
所以不要得到看起来像这样的东西
[{"date":"2018-10-01","average":12},{"date":"2018-10-02","average":-33},{"date":"2018-10-04","average":23},{"date":"2018-10-05","average":6}]
我只回来一个
[{"date":"2018-10-01","average":12}]
因为每个循环都会覆盖最后一个键和值
您如何改为追加?
【问题讨论】:
-
$chartArray[] = $chartObject;需要在您的循环中 -
还有
$chartObject = new stdClass();:)