2016-03-20 18 views
0

Ben "dataTable [ 'cols'] arasındaYeni Öğeler, push_array olmadan çok boyutlu bir diziye nasıl eklenir?

https://developers.google.com/chart/interactive/docs/reference#methods

ilk girişte açıklandığı gibi JSON bunu kodlamak için PHP bir Array inşa ediyorum Google Grafik Kitaplığı ile bazı sıcaklık grafiklerini çizdirmek istediğiniz gibi "x ekseni. Daha sonra birkaç satır daha eklemek istiyorum.

Bu çalışır:

$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); 
} 

Bu does not (500 Sunucu Hatası):

Burada

PHP add elements to multidimensional array with array_push

sağ kabul cevabı okuyorum

$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; 
} 

, eşdeğer olmalıdır.

cevap

0

Sadece aynı şekilde ile x eksenini eklemeyi deneyin!

+0

Evet teşekkürler, şu an çalışıyor. Bunun neden bir fark yarattığını açıklayabilir misiniz? – JHnet

+0

Eksik $ sadece bir yazım hatası .. – JHnet

+0

Emin değilim, ama sanırım PHP ilk sözdizimini içeren bir 'statik' dizi oluşturuyor ve içeriği için doğru miktarda bellek ayırıyor. Yani, içerisine bir şey eklemek istediğinizde, 'array_push() ile anlatmalısınız, çünkü PHP'nin belleği yeniden tahsis etmesi gerekiyor. Sanırım diğer sözdizimi sadece bir çeşit arabellek açabilirsin ki, istediğin şeyi koyabilirsin. Belki bu bellek hilesi dokümanda açıklanmaktadır. Umarım bu yardım! –

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

Bunu deneyin.

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

Ve dataTable önünde $ unutma:

İlgili konular