-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 に答える