Я работаю над приложением, где пользователь должен увидеть список с диаграммами. Данные для диаграмм следует извлекать из базы данных (которая в настоящее время насчитывает около 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) –