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

时间:2013-12-11 15:04:06

标签: php json

我正在使用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。

2 个答案:

答案 0 :(得分:2)

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

然后会向您展示数组结构。

答案 1 :(得分:1)

试试这个,

 $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);