将数组追加到多维数组中,PHP会静默失败


Appending an array to a multi dimensional array fails silently PHP?

我正在尝试将一个数组附加到多维数组中的另一个数组:

这是多维数组:

 $info[] = array(
     'key' => $row['id'],
     'master' => array(
         'name' => $row['master_name'],
         "detail" => array()
     )
);

I有一个键,它是主id,一个主项是一个数组,它有一个名称,另一个数组有详细信息(第一次是空的)。

但是当我尝试添加到$info['master']['detail']数组另一个数组的细节,像这样:

  $info['master']['detail'][] = array("name" => "A detail name", 
                                      "value" => "A detail value");

没有添加任何内容…这怎么可能呢?

编辑:foreach循环,将细节添加到master:

foreach ($details as $detail)
{
        $name = $detail['detail_name'];
        $value = $detail['detail_value'];
        if ($info['key'] == $detail['id']) {
              $info['master']['detail'][] = array("name" => $name,
                                                  "value" => $value);
        }
 }

我不确定我理解,但当我看到你的例子,我认为这是一个问题的索引:
尝试替换

 $info[] = array(
     'key' => $row['id'],
     'master' => array(
         'name' => $row['master_name'],
         "detail" => array()
     )
);
  $info['master']['detail'][] = array("name" => "A detail name", 
                                      "value" => "A detail value");

$info = array( 'key' => $row['id'],
               'master' => array('name' => $row['master_name'],, 
                                 "detail" => array())
                );
  $info['master']['detail'] = array("name" => "A detail name", 
                                    "value" => "A detail value");

和添加新值:

$info['master']['detail']['foo'] = "A detail foo";