Php &引用;注意:未定义索引";推送到数组时的某些值
我正在向数组添加一些带有键的值:Php &引用;注意:未定义索引";推送到数组时的某些值,php,arrays,Php,Arrays,我正在向数组添加一些带有键的值: public function addData($key, $value){ $this->data[$key] = $value; } //this is line y in another class $dataHolder->addData($FieldNames[$i], $row{$FieldNames[$i]}); 它大部分时间都有效。但有时我会 Notice: Undefined index [keyvalue] in x
public function addData($key, $value){
$this->data[$key] = $value;
}
//this is line y in another class
$dataHolder->addData($FieldNames[$i], $row{$FieldNames[$i]});
它大部分时间都有效。但有时我会
Notice: Undefined index [keyvalue] in x.php in line y
数组为空,值和键来自数据库表
大多数字段插入时没有任何问题,但有些字段会出现此错误?
你知道为什么它有时会起作用吗?Delcare
$this->data=array()代码>以上功能
或
当键
或值
作为空值从数据库传递函数时,可能会发生这种情况。根据我的说法,如果要在变量中推送元素,必须将该变量定义为数组。必须使用任何循环来推送数组中的值。例如:
public function addData($key,$value)
{
$array = array();
for($i=a,$j=0;$j<26;$j++)
{
$array[$i]=$array[$j];
}
}
公共函数addData($key,$value)
{
$array=array();
对于($i=a,$j=0;$j),我发现了问题。
这是一个愚蠢的人为错误
我忘记了我正在使用的表名是硬编码到特定表的。因此,如果我认为我正在使用的表和我实际使用的表具有相同的字段名,那么它是有效的
这里的解决方案是有时休息。我猜y行不是您向我们展示的那一行。在数组中设置值永远不会产生这样的未定义索引错误,它会创建键或覆盖现有键。y行是什么?有时$key中可能没有值。我不确定为什么会出现这样的通知。它是不应该出现,因为您只是设置值,而不是检索值。您确定检查的行号正确吗。@veelen即使键中没有值,也应该在数组末尾添加新行-例如。@Styphon您完全正确,我太快了。抱歉。为什么需要循环将值推送到数组?Th我的e代码对数据库中的大多数表都很有效,但在某些表中,某些字段会给出提示。我只是假设了一个示例:/I已经用这种方式对数组进行了allready去校验。键或值从不为空。数据库不允许字段为null。