好的,这就是我的需要:
result.1.json
,result.2.json
等)我需要将所有这些组合在一个数组中,例如:
$results = array (
json_decode(file_get_contents("result.1.json"),
json_decode(file_get_contents("result.2.json")),
...
)
然后将所有$results
写回json文件,如:
file_put_contents("results.json",$results);
这就是问题所在:
如果我们正在讨论json对象的 LOTS ,我是否会面临内存限制错误(这就是为什么我决定首先拆分对象 - 将所有结果存储在内存触发内存相关错误并崩溃)?
如果以上情况属实,我怎么能绕过它,仍然“连接”这些物体?
答案 0 :(得分:1)
memory_limit
到底是什么以及你需要多少内存来处理所有的JSON。 答案 1 :(得分:1)
如果来自文件的对象被封装到一个大数组中,实际上不需要读取和解码它们,假设它们实际上是有效的JSON语法。
数组是那种:
[
{ obj1},
{ obj2}
]
所以你可以做以下事情:
file_put_contents("results.json","[\n");
while ( ... has more files ... )
{
file_put_contents(file_get_contents($theFile), FILE_APPEND);
if ( .... has more files ....)
file_put_contents("results.json",",\n", FILE_APPEND);
}
file_put_contents("results.json","]\n", FILE_APPEND);
这几乎不会使用内存而且速度非常快。