无法将对象推送到数组

时间:2019-05-16 15:30:22

标签: php

当前,我试图通过一个foreach循环将多个对象推入一个数组($ columnDefs)。但是,它似乎不起作用。谁能告诉我我做错了什么?

$startingYear = 2012;
$endingYear = date('Y') + 1;
$yearRange = array();

for ($i = $startingYear;$i <= $endingYear;$i++)
{
    array_push($yearRange, $i);
}


$columnDefs = array(
    array('headerName' => 'Category', 'field' => 'category', 'width' => 180)
);

foreach($yearRange as $year){
   $columnDefs = array_merge(
       $columnDefs, 
       array(
           'headerName' => strval($year), 'field' => $year, 'width' => 120
       )
   );
}

1 个答案:

答案 0 :(得分:1)

要向阵列添加新结构,您需要:

$columnDefs = array_merge(
       $columnDefs, 
       array(
           array('headerName' => strval($year), 'field' => $year, 'width' => 120)
       )
   );

在上面对您的代码所做的修改中,您可以看到我将您先前的columnDefs数组与模仿columnDefs的新起点的新数组结构合并。

如果您不告诉它是数组,它将始终覆盖以前的键(因为它确实认为它是键和值,而不是数组)

然后将开始输出:

Array ( 
[0] => Array ( [headerName] => Category [field] => category [width] => 180 )   
[1] => Array ( [headerName] => 2012 [field] => 2012 [width] => 120 ) 
[2] => Array ( [headerName] => 2013 [field] => 2013 [width] => 120 ) 
[3] => Array ( [headerName] => 2014 [field] => 2014 [width] => 120 )
...