数组处理问题,求优化
本帖最后由 mafeifan 于 2014-12-26 11:36:04 编辑 有一个这样查询出来的数组。
$result = [
['month'=>08,'price'=>218],
['month'=>12,'price'=>140],
];
最终需要转换成一个字符串,用于前台js
格式类似:[49.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, null, null]
显示的是每月的销售情况,没有值就为null
比如一月份的price为49.9
我的做法:
感觉有点麻烦,求优化
//先构造类似 ['01'=>0,'02'=>0 .... '12'=>0] 这种格式的数组
$fullmonth = [];
for($i=1;$i$value){
foreach($result as $record){
if($month == $record['month']){
$fullmonth[$month] = $record['price'];
}
}
$i++;
}
return '[' . implode(',',$fullmonth) . ']';
------解决思路----------------------
$r = array_fill(0, 12, null);
$result = [
['month'=> '08', 'price'=> 218],
['month'=> '12', 'price'=> 140],
];
foreach($result as $v) {
$r[$v['month'] - 1] = $v['price'];
}
echo json_encode($r);
[null,null,null,null,null,null,null,218,null,null,null,140]
------解决思路----------------------
y加上引號,這樣才不會有notice
'2014-12-03','item'=>263],['y'=>'2014-12-04','item'=>168]];
echo json_encode($res, json_pretty_print);
?>
[
{
y: 2014-12-03,
item: 263
},
{
y: 2014-12-04,
item: 168
}
]