Ale*_*lex 0 php arrays undefined-index
我有这个功能:
function coin_matrix($test, $revs) {
$coin = array();
for ($i = 0; $i < count($test); $i++) {
foreach ($revs as $j => $rev) {
foreach ($revs as $k => $rev) {
if ($j != $k &&
$test[$i][$j] != null &&
$test[$i][$k] != null) {
$coin[$test[$i][$j]][$test[$i][$k]] += 1 / ($some_var - 1);
}
}
}
}
return $coin;
}
Run Code Online (Sandbox Code Playgroud)
哪里
$test = array(
array('3'=>'1','5'=>'1'),
array('3'=>'2','5'=>'2'),
array('3'=>'1','5'=>'2'),
array('3'=>'1','5'=>'1'));
Run Code Online (Sandbox Code Playgroud)
和
$revs = array('3'=>'A','5'=>'B');
Run Code Online (Sandbox Code Playgroud)
问题是当我运行它时,它会返回这些错误(通知):
注意:未定义的索引:第10行的1
注意:未定义的索引:第10行的1
注意:未定义的索引:第10行的2
注意:未定义的索引:第10行的2
注意:未定义的索引:第10行的2
注意:未定义的索引:第10行的1
这是这一行: $coin[$test[$i][$j]][$test[$i][$k]] += 1 / ($some_var - 1);
问题是,最后函数返回正确的矩阵(数组),如果我测试是否$coin[$test[$i][$j]][$test[$i][$k]]存在,那么它不再返回它.
任何建议都非常感谢!
谢谢!
$coin[$test[$i][$j]][$test[$i][$k]] += 1 / ($some_var - 1);
Run Code Online (Sandbox Code Playgroud)
该警告是由+=. +=需要在添加元素之前查找元素,并且在$coin第一次访问元素时没有初始化任何元素.