Ich arbeite an einer Anwendung, wo der Benutzer eine Liste mit Diagrammen sehen sollte. Die Daten für die Diagramme sollten aus einer Datenbank abgerufen werden (die derzeit ungefähr 785 Zeilen zählt) und dann sortiert werden, um eine gültige JSON-Zeichenfolge zu bilden. Recht nicht, dass ich versuche, es zu tun, wie diesPHP erstellt große JSON-String
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);
Wenn ich versuche, den Code auszuführen wird es einen geben „Fatal error: Erlaubt Speichergröße von 536.870.912 Bytes erschöpft (versucht, 71 Bytes zuzuteilen)“ Fehler. Ich habe versucht, den maximal zulässigen Speicher zu erhöhen, nur um zu sehen, was passieren würde, aber ich habe das gleiche Ergebnis.
Gibt es eine Möglichkeit, so viele Schleifen zu vermeiden? Oder sollte ich das ganz anders angehen, und wenn ja, welches?
Das Endergebnis sollte so etwas wie dieses
[{"name":"Some name", "date":["2016-05-09", "2016-05-10", "2016-05-11"], "android":["3", "1", "8"], "ios":["4", "7", "5"]},...]
Alle Hilfe würde geschätzt aussehen!
Mögliche Duplikate von [Erlaubte Speichergröße von 33554432 Bytes erschöpft (versucht, 43148176 Bytes zuzuweisen) in PHP] (http://stackoverflow.com/questions/415801/allowed-memory-size-of-33554432-bytes-exhausted -tried-to-allocate-43148176-byte) –