在数组中设置键/值“不能将标量值用作数组”


Set key/values in array "cannot use a scalar value as an array"

我有一个包含此数据的数组变量:

  $arr["values"] = [
    "key1" => "value1"
    "key2" => "value2"
    "key3" => "value3"
  ]

现在我正在尝试向$arr添加新键,如下所示:

$arr['newvalues'] = "anothervalue";
$arr['newvalues']['subvalues'] = "some_subvalue";

但是我得到了这个错误:

警告:不能将标量值用作数组

错误标记在此行:

$arr['newvalues']['subvalues'] = "some_subvalue";

为什么?我没有正确添加键/值?我做错了什么?

您必须

$arr['newvalues']设置为数组才能向其添加元素,目前您将其设置为字符串。

$arr['newvalues'] = [];
$arr['newvalues']['subvalues'] = "some_subvalue";

在这一行中

$arr['newvalues'] = "anothervalue";

您正在为$arr['newvalues']分配标量值。在下一行,您将它视为数组,但事实并非如此,因为您刚刚为其分配了一个标量值。

您可能的意思是$arr['newvalues']数组并向其添加anothervalue

$arr['newvalues'][] = "anothervalue";