0

我认为这很简单,但我当然遇到了障碍,我是处理 JSON 数据的新手,但这里是信息。

$new_item = '[2554560000, 18.26]';
$load = file_get_contents("json/graphlist.json");
$data = json_decode($load, true);
var_dump($data);
echo "<br /><br />";
echo ($data['product1']);
echo "<br /><br />";
echo json_encode($data);


$save = file_put_contents('json/graphlist.json', json_encode($data));

JSON数据:

{"product1":[[243500000,17.85],[245500000,14.65],[248500000,16.22]]}

当我 var_dump 解码后的数据时,它显示为:

array(1) { ["product1"]=> array(3) { [0]=> array(2) { [0]=> int(243500000) [1]=> float(17.85) } [1]=> array(2) { [0]=> int(245500000) [1]=> float(14.65) } [2]=> array(2) { [0]=> int(248500000) [1]=> float(16.22) } } }

然而,当我回显 product1 数组时,它只显示:

Array

所以我的问题是如何访问第二个数组中的数据。然后将 $new_item 中的数据附加到现有字符串以保存回 JSON 文件。我到处寻找,但找不到任何有类似示例或错误的人。

4

3 回答 3

2

你可能想做

echo($data["product1"][0][0]);

相反,要取出第一个数字。

于 2013-02-20T19:03:09.640 回答
0

您不能调用echo数组,它只会正确显示Array.

如果要访问其中的数据,可以执行以下操作:

echo $data['product1'][0][0] // echoes '243500000'

于 2013-02-20T19:01:47.180 回答
0

您需要使用print_r()来显示整个数组。

 print_r($data['product1']);
于 2013-02-20T19:02:38.683 回答