我有一个json数据
[
{"s_month":"1", "s_name": "John"},
{"s_month":"4", "s_name": "Merry"},
{"s_month":"7", "s_name": "Apple"},
{"s_month":"10", "s_name": "Kevin"}
]
我想根据月份创建一个数组,但是数组的长度是12,数组会喜欢它。
Array(
[0]=>John
[1]=>non
[2]=>non
[3]=>Merry
[4]=>non
[5]=>non
[6]=>Apple
[7]=>non
[8]=>non
[9]=>Kevin
[10]=>non
[11]=>non
)
我必须构建默认的12长度数组吗?怎么做?感谢。
答案 0 :(得分:4)
试试这个,
$jsonStr = YOUR JSON STRING;
$dataArr = json_decode($jsonStr,true);
$newArr = array();
for($i=0;$i<12;$i++){
if(!empty($dataArr[$i]["s_month"]) && $dataArr[$i]["s_month"]==($i+1)){
$newArr[$i]=$dataArr[$i]["s_month"];
}else{
$newArr[$i]="NA";
}
}
答案 1 :(得分:1)
$array = array_fill(0, 12, 'non');
foreach (json_decode($json, true) as $entry) {
$array[$entry['s_month'] - 1] = $entry['s_name'];
}