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

WBOY
풀어 주다: 2016-06-13 12:12:38
원래의
784명이 탐색했습니다.

数组处理问题,求优化

本帖最后由 mafeifan 于 2014-12-26 11:36:04 编辑 有一个这样查询出来的数组。
<br />$result = [<br />	['month'=>08,'price'=>218],<br />	['month'=>12,'price'=>140],<br />];<br />
로그인 후 복사


最终需要转换成一个字符串,用于前台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

我的做法:
感觉有点麻烦,求优化

<br />        //先构造类似  ['01'=>0,'02'=>0 .... '12'=>0]  这种格式的数组<br />        $fullMonth = [];<br />        for($i=1;$i<=12;$i++){<br />            $fullMonth[str_pad($i,2,'0',STR_PAD_LEFT)] = 0;<br />        }<br />        //  遍历数组  对应月份有值就放到新建的数组里<br />        $i = 0;<br />        foreach($fullMonth as $month=>$value){<br />            foreach($result as $record){<br />                if($month == $record['month']){<br />                    $fullMonth[$month] = $record['price'];<br />                }<br />            }<br />            $i++;<br />        }<br />        return '[' . implode(',',$fullMonth) . ']';<br />
로그인 후 복사

------解决思路----------------------
$r = array_fill(0, 12, null);<br />$result = [<br />    ['month'=> '08', 'price'=> 218],<br />    ['month'=> '12', 'price'=> 140],<br />];<br />foreach($result as $v) {<br />  $r[$v['month'] - 1] = $v['price'];<br />}<br />echo json_encode($r);
로그인 후 복사
[null,null,null,null,null,null,null,218,null,null,null,140]
로그인 후 복사

------解决思路----------------------
y加上引號,這樣才不會有notice
<br /><?php<br />$res = [['y'=>'2014-12-03','item'=>263],['y'=>'2014-12-04','item'=>168]];<br />echo json_encode($res, JSON_PRETTY_PRINT);<br />?><br />
로그인 후 복사


<br /><br />[<br />    {<br />        "y": "2014-12-03",<br />        "item": 263<br />    },<br />    {<br />        "y": "2014-12-04",<br />        "item": 168<br />    }<br />]<br />
로그인 후 복사
관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿