我正在研究一个应用程序,其中用户应该可以看到带有图表的列表。图表的数据应该从数据库中获取(目前大约有785行),然后进行排序以形成一个有效的JSON字符串。有权不我尝试做这样PHP创建大型JSON字符串
while($row = $res->fetch_assoc()) {
if(count($appData) == 0){
$appData[] = array(
"name" => $row["name"],
"date" => array($row["date"]),
"android" => array($row["android_count"]),
"ios" => array($row["apple_count"])
);
}else {
for($i = 0; $i < count($appData); $i++) {
if($appData[$i]["name"] == $row["name"]){
$appData[$i]["date"][] = $row["date"];
$appData[$i]["android"][] = $row["android_count"];
$appData[$i]["ios"][] = $row["apple_count"];
}else {
$appData[] = array(
"name" => $row["name"],
"date" => array($row["date"]),
"android" => array($row["android_count"]),
"ios" => array($row["apple_count"])
);
}
}
}
}
echo json_encode($appData);
当我尝试运行代码它会给出一个“致命错误:用尽536870912个字节允许内存大小(试图分配71个字节)”的错误。我试图增加最大允许的内存,只是为了看看会发生什么,但我得到了同样的结果。
有没有办法避免这么多循环?还是应该以完全不同的方式处理这个问题,如果是的话,哪一个呢?
最终的结果应该是这个样子
[{"name":"Some name", "date":["2016-05-09", "2016-05-10", "2016-05-11"], "android":["3", "1", "8"], "ios":["4", "7", "5"]},...]
所有帮助将不胜感激!
可能重复[允许的内存大小33554432字节用尽(试图分配43148176字节)在PHP](http://stackoverflow.com/questions/415801/allowed-memory-size-of-33554432-bytes-exhausted -tried-to-allocate-43148176-byte) –