我想将一些数据存储在名为$temp
的数组中,但是我得到一个错误,即存在未定义的偏移量。这是我的代码:
$temp = array();
$terms = $this->DocumentTerms();
$temp[0] = $terms[0][0];
for ($i = 0; $i < sizeof($terms); $i++) {
$flag = true;
for ($j = 0; $j < sizeof($terms[$i]); $j++) {
for ($k = 0; $k < sizeof($temp) || $k < sizeof($terms[$i]); $k++) {
if ($temp[$k] == $terms[$i][$j]) {
$flag = false;
break;
}
}
if ($flag)
array_push($temp, $terms[$i][$j]);
}
}
未定义的偏移位于此部分:
if($temp[$k] == $terms[$i][$j])
答案 0 :(得分:3)
此条件:
$temp[$k] == $terms[$i][$j]
应该是:
isset($temp[$k]) && $temp[$k] == $terms[$i][$j]
在第二个循环结束之前,您不会将任何数据推送到$temp
,但是您尝试在此条件中访问数组的$k
索引。如果尚未设置,则会失败。检查以确保它已设置,然后继续查看它是否等于$terms[$i][$j]
。