当前位置:Gxlcms > PHP教程 > 数组处理有关问题,求优化

数组处理有关问题,求优化

时间:2021-07-01 10:21:17 帮助过:12人阅读

数组处理问题,求优化
本帖最后由 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<=12;$i++){
$fullMonth[str_pad($i,2,'0',STR_PAD_LEFT)] = 0;
}
// 遍历数组 对应月份有值就放到新建的数组里
$i = 0;
foreach($fullMonth as $month=>$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

$res = [['y'=>'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
}
]

人气教程排行