使用PHP创建json结构并更新数据


Create json structure with PHP and update datas

我使用的是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);