PHP数组指定新数组的位置


php array specified location to a new array

有一个json data

[
 {"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长度数组?怎么做呢?谢谢。

try this,

$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";
   }
}
$array = array_fill(0, 12, 'non');
foreach (json_decode($json, true) as $entry) {
    $array[$entry['s_month'] - 1] = $entry['s_name'];
}