我收到此错误未定义的偏移量:-1。
我很确定这是因为我将数组索引的值与上一个索引的值进行比较,所以在第一次迭代中它失败了,因为没有-1索引。
for ($i=0; $i<$rows_n; $i++)
{
formatTR($i, $rows, 'YEAR');
}
// Function
function formatTR($i, $rows, $year)
{
if ($rows[$year][$i] != $rows[$year][$i-1] ) {
print "<tr class='header-year-tr'><td colspan='2'>{$rows[$year][$i]}</td></tr>";
}
print "<tr>";
}
该函数检查$rows[year][i]的上一个值是否与前一个$rows[ayear][i-1]相同。如果不同,则打印出格式化的<TR>。
似乎避免这个错误的一种方法是首先检查$i的值是否为零,但我想知道是否还有其他方法。可能在我的if条件中。
我认为最简单的方法是检查$I>0
if ($i > 0 && $rows[$year][$i] != $rows[$year][$i-1] ) {
// ...
}
"未定义的偏移"几乎总是一个错误,罪魁祸首是:
if ($rows[$year][$i] != $rows[$year][$i-1] ) {
-------------------------------------^^^^
如果$i == 0
function formatTR($i, $rows, $year)
{
if($i > 0){
if ($rows[$year][$i] != $rows[$year][$i-1] ) {
print "<tr class='header-year-tr'><td colspan='2'>{$rows[$year][$i]}</td></tr>";
}
}
print "<tr>"; //not sure why you have this here.
}
如果要$rows[$year][0]
打印<tr>
:
function formatTR($i, $rows, $year)
{
if($i > 0){
if ($rows[$year][$i] != $rows[$year][$i-1] ) {
print "<tr class='header-year-tr'><td colspan='2'>{$rows[$year][$i]}</td></tr>";
}
} else {
print "<tr class='header-year-tr'><td colspan='2'>{$rows[$year][$i]}</td></tr>";
}
print "<tr>"; //not sure why you have this here.
}