-2

我有一个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 长度数组吗?怎么做?谢谢。

4

2 回答 2

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";
   }
}
于 2013-03-20T07:33:48.107 回答
1
$array = array_fill(0, 12, 'non');

foreach (json_decode($json, true) as $entry) {
    $array[$entry['s_month'] - 1] = $entry['s_name'];
}
于 2013-03-20T07:53:10.980 回答