JSON_ENCODE无法编码大型数组

时间:2016-08-23 18:00:37

标签: javascript php arrays json

我需要帮助使用PHP的json_encode()将大型数组编码为JSON。该数组来自本地数据库。我使用JS来解析JSON。但是,如果数据集太大,则处理数组到JSON格式的PHP脚本会停止。 (即100,000个结果)。我试着把我的memory_limit提高到-1但仍然没有帮助。是否可以使用PHP的json_encode()编码大数组?

如果我的问题太混乱,请告诉我。

谢谢大家!

2 个答案:

答案 0 :(得分:3)

如果数组中的每一行都由json_encode成功编码,那么只需对每一行进行编码并自行回显数组结构即可利用这一事实。

那是

$prefix = '';
echo '[';
foreach($rows as $row) {
  echo $prefix, json_encode($row);
  $prefix = ',';
}
echo ']';

如果嵌套更复杂,那么需要采用更详细的技术,但这种技术在我遇到问题时就救了我。

答案 1 :(得分:0)

可接受的答案是这个

$prefix = ''; 
echo '[';  
foreach($rows as $row) {
 echo $prefix, json_encode($row);  $prefix = ','; 
} 
echo ']';

张贴在上面。

但是,如果数据集太大,仍无法保证工作。

可能的解决方案是限制查询。而不是使用SELECT *。只需选择您需要哪些行但在我的情况下,我无法完全控制查询。所以这个解决方案对我不起作用。

最后一个是升级我们服务器的内存甚至服务器本身,以跟上不断增长的数据集。

感谢大家的帮助!