如何在数组中创建 json 动态嵌套信息

我正在开发一个代码来分析图像像素(每个图像总共 1,048,576 个)。由于要将大量信息插入数据库,我决定最好的选择可能是创建一个文件来存储所有结果。


等等,我正在使用 PHP-Laravel。不会显示整个代码,但会给出一些关于我所做的提示。


1.-首先,我在代码的开头创建了创建 results.txt 文件的命令:


$resultsFile = Storage::put('results/results.txt', '');

2.- 处理信息后,这就是我要存储的内容:生成的材料和坐标


$data_to_insert = [

                    'material' => 'how',

                    'coord_x' => $pixel_x,

                    'coord_y' => $pixel_y,

                ];

3.- 我为我的文件创建了这个标题:


$headers = [

             'orbit' => 'Vesta Test',

              'results' => []

];


$headers['results'] = $data_para_insertar;

file_put_contents('results.txt', json_encode($headers));

好吧,当我尝试获取已存储的信息时,问题就来了:


$json_data = json_decode(Storage::get('results/results.txt'), true);

并尝试将我已经存储的结果与我的新结果合并:


$results = array_merge($json_data['results'], $data_to_insert);

我只是将最后一个寄存器存储到我的文件中:


{"orbit":"Vesta Test","results":{"material":"how","coord_x":946,"coord_y":963}}

我想以这种方式或类似方式存储有关“结果”的信息


{

  "orbit":"Vesta Test",

  "results": [

              {"material":"how","coord_x":946,"coord_y":963}, 

              {"material":"how","coord_x":955,"coord_y":933},

              .....

   ]

}

一切都发生在 for 语句中。


非常感谢你的帮助。


手掌心
浏览 87回答 1
1回答

阿晨1998

而不是$results = array_merge($json_data['results'], $data_to_insert);您需要将数据附加到结果元素,您可以使用$json_data['results'][] = $data_to_insert;
打开App,查看更多内容
随时随地看视频慕课网APP