我在尝试使用PHP构建数组时遇到问题,该数组将以我正在寻找的JSON格式输出。我将向您展示我想要达到的目标以及到目前为止我所处的位置:
[
{"data":[{"x":3,"y":0},{"x":10,"y":0}]},
{"data":[{"x":11,"y":0},{"x":13,"y":0}]},
{"data":[{"x":12,"y":1},{"x":17,"y":1}]}
]
我循环遍历db结果并尝试构建数组以输出上面的json,我的php看起来像这样(显然还不对):
//build the data
$data = array(
array(
'x' => $age_start,
'y' => $ill_type
),
array(
'x' => $age_end,
'y' => $ill_type
)
);
$illnesses[] = $data;
此代码输出以下json:
[
{
[
[{"x":2,"y":6},{"x":2,"y":6}],
[{"x":2,"y":6},{"x":5,"y":6}],
[{"x":4,"y":6},{"x":4,"y":6}]
]
}
]
关于此的任何指示都会很棒!
答案 0 :(得分:1)
这样做:
$data['data'] = array(
array(
'x' => $age_start,
'y' => $ill_type
),
array(
'x' => $age_end,
'y' => $ill_type
)
);
答案 1 :(得分:1)
基本上,如果你已经知道了你想要的JSON输出,你可以简单地json_decode
来获得它在PHP中的表示。 var_export
函数以可解析的格式打印结构。您也可以使用print_r
或var_dump
转储结构。
$json = <<< JSON
[
{"data":[{"x":3,"y":0},{"x":10,"y":0}]},
{"data":[{"x":11,"y":0},{"x":13,"y":0}]},
{"data":[{"x":12,"y":1},{"x":17,"y":1}]}
]
JSON;
var_export( json_decode($json) );
上述方法具有普遍性。只需解码并转储结构。然后汇编代码以创建此结构并进行编码。
答案 2 :(得分:1)
查看JSON字符串,您可以看到:
[
和]
包围){
和}
包围)data
,它本身就是一个数组x
和y
属性重要的是要知道JSON对象在PHP中由关联数组表示(当json_encode()
时,json_decode()
有一个特定的参数来使用stdClass
或者assoc.array)。
所以php结构看起来像这样:
$data = array(
array('data' => array(array('x' => 3, 'y' => 0), array('x' => 10, 'y' => 0))
,array('data' => array(array('x' => 11, 'y' => 0), array('x' => 13, 'y' => 0))
,array('data' => array(array('x' => 12, 'y' => 1), array('x' => 17, 'y' => 1))
);