for循环中的php undefined offset 150错误

时间:2014-04-08 20:19:05

标签: php

我一直得到一个未定义的偏移150错误,但我不确定它意味着什么或我该怎么做来调试它。做到错误行我相信它与我的for循环有关。

// Get Datafile
$MyData = file("./tmp/test.txt");
// Get Column Headers

$ColHeads = explode("   ", $MyData[1]);

unset($MyData[1]);
$LastHeader = "";
for ($i = 0;$i <= count($ColHeads);$i++) {
    if ($ColHeads[$i] == $LastHeader) { //<---this is the line that errors
        $ColHeads[$i] = $ColHeads[$i] . "1";
    }
    $LastHeader = $ColHeads[$i];
}

有人会对我出错的地方有任何想法吗?

,错误是:

Undefined offset: 150

如果这很模糊,我很抱歉。我不熟悉php并且不确定从哪里开始调试这个...任何帮助都将非常感谢!谢谢!

2 个答案:

答案 0 :(得分:2)

更改你的for循环:

for ($i = 0;$i < count($ColHeads);$i++) {

问题是在循环的最后一次迭代中,当$ i == count($ ColHeads)时,这将为$ ColHeads中的项目数设置$ i。

你开始正确设置$ i = 0.如果$ ColHeads中有5个项目,那些项目的索引从0到4.你的for循环,实际上是5 - 并且没有$ Colheads [5],因此抛出错误。

答案 1 :(得分:2)

数组索引从零开始。并以Length-1结束。所以它应该是:

for ($i = 0;$i < count($ColHeads);$i++) {