我有以下代码:
$final = [1 => 2];
$id = 1;
$final[$id][0] = 3;
代码似乎工作正常,但我收到以下警告:
警告:不能将标量值用作第 X 行中的数组(行距:$final[$id][0] = 3)。
谁能告诉我如何解决这个问题?
在向数组添加元素之前,您需要将$final[$id]
设置为数组。用任一方式进行渗透
$final[$id] = array();
$final[$id][0] = 3;
$final[$id]['link'] = "/".$row['permalink'];
$final[$id]['title'] = $row['title'];
或
$final[$id] = array(0 => 3);
$final[$id]['link'] = "/".$row['permalink'];
$final[$id]['title'] = $row['title'];
原因是因为你首先在某个地方用普通整数或字符串声明了你的变量,然后你试图把它变成一个数组。
我看到的另一个问题是,当嵌套数组时,这往往会引发警告,请考虑以下几点:
$data = [
"rs" => null
]
当像这样使用时,上面绝对可以正常工作:
$data["rs"] = 5;
但下面会抛出警告::
$data = [
"rs" => [
"rs1" => null;
]
]
..
$data[rs][rs1] = 2; // this will throw the warning unless assigned to an array
还要确保不要将其声明为数组,然后尝试为数组分配其他内容,如字符串、浮点数、整数。 我有这个问题。 如果你做一些输出的回显,我第一次看到我想要的东西,但在再次传递相同的代码后没有。