2016-03-20 2 views
0

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?

beschrieben

https://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.

Antwort

0

Versuchen Sie einfach Ihre x-Achse mit der gleichen Art und Weise hinzuzufügen:

$dataTable['cols'][] = array('id' => 'time_axis', 'label' => 'Time', 'type' => 'datetime');

Und nicht zu vergessen die $ vor dataTable!

+0

Ja danke, das funktioniert jetzt. Kannst du erklären, warum das einen Unterschied macht? – JHnet

+0

Missing $ war nur ein Tippfehler .. – JHnet

+0

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 ! –

0
foreach($items as $index => $array) 
{ 
$items[$index]['id']=$id; 
} 

Versuchen Sie dies.

Verwandte Themen