Php 如何在没有push_数组的情况下将新元素插入多维数组?

Php 如何在没有push_数组的情况下将新元素插入多维数组?,php,arrays,multidimensional-array,Php,Arrays,Multidimensional Array,由于我想用Google图表库绘制一些温度图,我正在用PHP构建一个数组,将其编码为JSON,如中所述 “dataTable['cols']”的第一个条目是x轴。然后我想一行一行地添加更多的行 这项工作: $dataTable = array(); $dataTable['cols'] = array( array('id' => 'time_axis', 'label' => 'Time', 'type' => 'datetime') ); foreach($sens

由于我想用Google图表库绘制一些温度图,我正在用PHP构建一个数组,将其编码为JSON,如中所述

“dataTable['cols']”的第一个条目是x轴。然后我想一行一行地添加更多的行

这项工作:

$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);
}
这不会导致(500服务器错误):

当我在这里阅读被接受的答案时

对,应该是等价的

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

试试这个。

用同样的方法添加x轴:

$dataTable['cols'][]=array('id'=>'时间轴','label'=>'时间','type'=>'日期时间')


不要忘记数据表前面的
$

是的,谢谢,现在可以了。你能解释一下为什么会有不同吗?我不确定,但我认为这是因为PHP使用第一种语法创建了一个“静态”数组,并为其内容分配了适当的内存量。所以,当你想在里面添加一些东西时,你必须通过
array\u push()
告诉它,因为PHP需要重新分配内存。我猜另一种语法只是打开了一种缓冲区,在那里你可以随时放你想要的东西。也许这些记忆技巧在文档中有解释。希望这有帮助!看一看链表:也许第二种语法使用它们并解释你的问题!
foreach($items as $index => $array)
{ 
 $items[$index]['id']=$id; 
}