php数组指定一个新数组的位置

时间:2013-03-20 07:27:24

标签: php

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

2 个答案:

答案 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'];
}