我使用的是symfony2,我需要创建这样的json结构:
{
"map": [
[ X, 1, 1, 1, 1],
[ 1, 1, 1, 1, 1],
[ 1, 1, 1, 1, 1],
[ 1, 1, 1, 1, 1],
[ 1, 1, 1, 1, 1],
]
}
我需要生成这个数组,然后保存到一个文件.json.
在这个例子中,它只是一个5-5的数组,但我可以有X-X,大小在一个变量$size
中。
那么,我如何简单地用PHP生成这种json呢?
还有一个问题,我需要在生成json之后更新一些数据。例如,我需要将X替换为8。
使用json_encode()
$arr = array(
'map' => array(
array(
'X',1,1,1,1
),
array(
1,1,1,1,1
),
array(
1,1,1,1,1
),
array(
1,1,1,1,1
),
array(
1,1,1,1,1
)
)
);
echo json_encode($arr);
// outputs {"map":[["X",1,1,1,1],[1,1,1,1,1],[1,1,1,1,1],[1,1,1,1,1],[1,1,1,1,1]]}
如果你不确定PHP数组生成你想要的JSON的样子,那么写一个你想要的JSON数组的测试样本,并基本上反向运行它!使用json_decode()
,例如:
$json_string = '{"map":[["X",1,1,1,1],[1,1,1,1,1],[1,1,1,1,1],[1,1,1,1,1],[1,1,1,1,1]]}';
print_r(json_decode($json_string, true));
然后它将显示数组结构。
试试这个,
$Data = array(
'map' => array( array('x','1','1','1','1'),
array('1','1','1','1','1'),
...
array('1','1','1','1','1')
)
);
echo json_encode($Data);