我需要帮助使用PHP的json_encode()将大型数组编码为JSON。该数组来自本地数据库。我使用JS来解析JSON。但是,如果数据集太大,则处理数组到JSON格式的PHP脚本会停止。 (即100,000个结果)。我试着把我的memory_limit提高到-1但仍然没有帮助。是否可以使用PHP的json_encode()编码大数组?
如果我的问题太混乱,请告诉我。
谢谢大家!
答案 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 *。只需选择您需要哪些行但在我的情况下,我无法完全控制查询。所以这个解决方案对我不起作用。
最后一个是升级我们服务器的内存甚至服务器本身,以跟上不断增长的数据集。
感谢大家的帮助!