PHP:从MySQL查询表中获取两个数组

标签 php mysql json

我正在从 MySQL 中捕获以下数据:

table

使用 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]}}

最佳答案

有两个地方需要更改 - $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)
    ));

关于PHP:从MySQL查询表中获取两个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22767430/

相关文章:

php - Symfony2 将变量从自己的包传递到 Twig

MySQL 优化使用 WHERE 子句的子查询?

PHP 刷新输出到浏览器

php - MySql PHPmyadmin 错误 #1062

php - PHP 中 printf() 函数的用途是什么?

C# 删除重复条目(但不保留第一个条目和第二个条目)

Python MySQLdb查询参数 "IS NULL"而不是 "= NULL"

PHP Azure OCR - 转换数组中的 JSON

java - 从 JSON 字符串中删除元素

json - Curl 从输出中获取特定值