猿问

求助php 数组转换问题

昨天有朋友说看不懂什么意思
我现在截图说明一下

我想用echarts 做图表数据 查询出来的数据是下图左边的样子 要做成右边数据图表对应的样式所以求大神帮帮忙

再附一张图片格式的数据
https://img3.mukewang.com/5c8f6e990001300405880708.jpg

温温酱
浏览 550回答 6
6回答

隔江千里

json_decode

慕哥6287543

先转让数据格式为下面的(不知道还有没有精简的方法。。) $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);

九州编程

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

吃鸡游戏

<?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);

德玛西亚99

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

撒科打诨

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);
随时随地看视频慕课网APP
我要回答