Wie ich möchte mit dem Google-Diagramm-Bibliothek einige Temperaturdiagramme plotten ich ein Array in PHP baue es zu JSON zu codieren, wie inWie fügt man neue Elemente ohne push_array in ein multidimensionales Array ein?
beschriebenhttps://developers.google.com/chart/interactive/docs/reference#methods
Der erste Eintrag „Datatable [‚Cols‘] "ist die x-Achse. Ich möchte dann einige Zeilen nacheinander hinzufügen.
Dies funktioniert:
$dataTable = array();
$dataTable['cols'] = array(
array('id' => 'time_axis', 'label' => 'Time', 'type' => 'datetime')
);
foreach($sensors as $id => $description) {
//Entries in $sensors are from a database
$column = array('id' => $id, 'label' => $description, 'type' => 'number');
array_push($dataTable['cols'],$column);
}
Dies gilt nicht (500 Server Error):
$dataTable = array();
$dataTable['cols'] = array(
array('id' => 'time_axis', 'label' => 'Time', 'type' => 'datetime')
);
foreach($sensors as $id => $description) {
//Entries in $sensors are from a database
$column = array('id' => $id, 'label' => $description, 'type' => 'number');
$dataTable['cols'][] = $column;
}
Wenn ich lese die akzeptierte Antwort hier
PHP add elements to multidimensional array with array_push
rechts, es sollte gleichwertig sein.
Ja danke, das funktioniert jetzt. Kannst du erklären, warum das einen Unterschied macht? – JHnet
Missing $ war nur ein Tippfehler .. – JHnet
Ich bin mir nicht sicher, aber ich denke es ist, weil PHP ein 'statisches' Array mit der ersten Syntax erstellt und die richtige Menge an Speicher für seinen Inhalt zuweisen. Also, wenn Sie etwas hinzufügen möchten, müssen Sie es über 'array_push()' sagen, weil PHP Speicher neu zuordnen muss. Ich nehme an, die andere Syntax öffnet nur eine Art Puffer, den Sie im Flug einsetzen können. Vielleicht werden diese Speichertricks im Doc erklärt. Ich hoffe das hilft ! –