为了账号安全,请及时绑定邮箱和手机立即绑定

求助php 数组转换问题

求助php 数组转换问题

PHP
温温酱 2019-03-18 18:10:36
昨天有朋友说看不懂什么意思 我现在截图说明一下 我想用echarts 做图表数据 查询出来的数据是下图左边的样子 要做成右边数据图表对应的样式所以求大神帮帮忙 再附一张图片格式的数据
查看完整描述

6 回答

?
隔江千里

TA贡献1906条经验 获得超10个赞

   json_decode
查看完整回答
反对 回复 2019-03-18
?
慕哥6287543

TA贡献1831条经验 获得超10个赞

先转让数据格式为下面的(不知道还有没有精简的方法。。)

    $arr = [
        '1' => [
            [
                'month'     => '2016-08',
                'sum_money' => 250000,
            ],
            [
                'month'     => '2016-09',
                'sum_money' => 250000,
            ],
        ],
        '2' => [
            [
                'month'     => '2016-08',
                'sum_money' => 250000,
            ],
            [
                'month'     => '2016-09',
                'sum_money' => 250000,
            ],
        ],
        '3' => [
            [
                'month'     => '2016-08',
                'sum_money' => 250000,
            ],
            [
                'month'     => '2016-09',
                'sum_money' => 250000,
            ],
        ]
    ];
    foreach ($arr as $name => $item) {
        $series[] = [
            'name' => $name,
            'data' => array_column($item, 'sum_money')
        ];
    }

    $xAxis = array_column(array_pop($arr), 'month');
    dump($xAxis);

    $series = json_encode($series);
    dump($series);

https://img1.sycdn.imooc.com//5c8f6e9b0001a84908000110.jpg

查看完整回答
反对 回复 2019-03-18
?
九州编程

TA贡献1785条经验 获得超4个赞

我思路是,你先把日期取出来,array_column这样就可以获取到日期数组,然后根据日期数组去遍历元数组获取统计数据,所有数据需要跟日期的数组顺序一致,然后json_encode返回给前端.

查看完整回答
反对 回复 2019-03-18
?
吃鸡游戏

TA贡献1829条经验 获得超7个赞

<?php
$array = [
        ['month'=>'2016-08', 'borrow_duration' => '1', 'sum_money'=>'1234'],
        ['month'=>'2016-08', 'borrow_duration' => '2', 'sum_money'=>'1231'],
        ['month'=>'2016-09', 'borrow_duration' => '1', 'sum_money'=>'2230'],
        ['month'=>'2016-09', 'borrow_duration' => '3', 'sum_money'=>'56723'],
    ];

$month = [];
$data  = [];
foreach($array as $key => $value){
    $month[$value['month']] = $value['month'];
    $data[$value['borrow_duration']]['name'] = $value['borrow_duration'];
    $data[$value['borrow_duration']]['data'][] = $value['sum_money'];
}
$month = array_values($month);
$data = array_values($data);

echo json_encode($month);
echo json_encode($data);
查看完整回答
反对 回复 2019-03-18
?
德玛西亚99

TA贡献1770条经验 获得超3个赞

echarts好像可以直接用json格式的

查看完整回答
反对 回复 2019-03-18
?
撒科打诨

TA贡献1934条经验 获得超2个赞

class SegmentFault
{

public $array = array(
    array('month' => '2016-03', 'borrow_duration' => '1', 'sum_money' => '230000'),
    array('month' => '2016-04', 'borrow_duration' => '2', 'sum_money' => '240000'),
    array('month' => '2016-05', 'borrow_duration' => '3', 'sum_money' => '250000'),
    array('month' => '2016-06', 'borrow_duration' => '1', 'sum_money' => '260000'),
    array('month' => '2016-07', 'borrow_duration' => '2', 'sum_money' => '270000'),
    array('month' => '2016-08', 'borrow_duration' => '3', 'sum_money' => '280000')
);

public function echarts()
{
    foreach ($this->array as $key => $value)
    {
        $res['data'][] = $value['month'];
        $res[$value['borrow_duration']]['name'] = $value['borrow_duration'];
        $res[$value['borrow_duration']]['data'][] = $value['sum_money'];
    }

    return $res;
}

}

$instance = new SegmentFault();
$res = $instance->echarts();
echo json_encode($res);

查看完整回答
反对 回复 2019-03-18
  • 6 回答
  • 0 关注
  • 549 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信