我从MySQL捕获以下数据:
使用PHP,我想组织两个数组中的数据:'pagamentos'
和'recebimentos'
,按'mes'
排序到JSON对象中。类似的东西:
{ name: 'Recebimentos', data: [0.00, 11970.99, 2888.0]},
{ name: 'Pagamentos', data: [400.00, 6877.00, 500.00]}
我有:
$rows = $result->fetchAll(PDO::FETCH_ASSOC);
$recebimentos=array();
$pagamentos=array();
foreach ($rows as $key) {
if($key['fluxo']=='Recebimentos'){
array_push($recebimentos, floatval($key['atual']));
} elseif($key['fluxo']=='Pagamentos'){
array_push($pagamentos, floatval($key['atual']));
}
};
echo json_encode(array(
'recebimentos' => array(name=> 'name', data=>$recebimentos),
'pagamentos' => array(name=> 'name', data=>$pagamentos),
));
但这又回来了:
{"recebimentos":{"name":"name","data":[0,11970.99,2888]},"pagamentos":{"name":"name","data":[400,6877,500]}}
答案 0 :(得分:2)
有两个地方需要更改 - $key['real']
应为$key['atual']
或$key['actual']
。不确定是否存在复制粘贴错误,或者该列是否实际命名为atual:
foreach ($rows as $key) {
if($key['fluxo']=='Recebimentos'){
$recebimentos[]=$key['atual'];
} elseif($key['fluxo']=='Pagamentos'){
$pagamentos[]==$key['atual'];
}
};
当您指定编码数据的名称时,您需要实际名称,而不是'name'
:
echo json_encode(array(
array(name=> 'recebimentos', data=>$recebimentos),
array(name=> 'pagamentos', data=>$pagamentos)
));
答案 1 :(得分:1)
替换
foreach ($rows as $key) {
if($key['fluxo']=='Recebimentos'){
$recebimentos[]=$key['real'];
} elseif($key['fluxo']=='Pagamentos'){
$pagamentos[]==$key['real'];
}
};
通过
foreach ($rows as $key) {
if($key['fluxo']=='Recebimentos'){
$recebimentos[] = $key['actual']; // 'actual', not 'real'
} elseif($key['fluxo']=='Pagamentos'){
$pagamentos[] = $key['actual']; // just 1 '=' and 'actual', not 'real'
}
};