1错误中的未定义偏移量

时间:2013-11-14 23:38:59

标签: php

我正在尝试使用此代码提取数组,但它会给出错误。但是,如果我从代码中删除while块而只给indice它有效。这是代码。

    //This function gives error: Notice: Undefined offset: 1 in .......
//but if i delete while block and only write print $type[$i]; it works.

public function checkMimeType(){
        echo '<pre>';
        $i = 0;
        $type = array();
            foreach($this->_sourceFile as $key){

                $type= $key['type'];

            }
        while($i <= count($type))
        {
            print $type[$i].'<br>';
            $i++;
        }

    }

3 个答案:

答案 0 :(得分:0)

计数不等于最后一个指数。

数组[x, y, z]的计数为3,但最后一个索引为2

因此,在您的while循环中,您不能在<= count之前运行,而只能运行< count。当$i变为count时,索引已经超出范围。

答案 1 :(得分:0)

在第一个循环中,您没有向数组添加值,而是每次都覆盖$type变量。试试这个:

$type[] = $key['type'];

编辑:还有@thst所说的

答案 2 :(得分:0)

你经常循环一次;)

索引号从零开始。如果数组中有一个元素,则唯一定义的索引为0. count()将返回1。 如果您循环“直到$i<= 1,它将停在$i = 1。没有ID为1的元素。

所以,请使用while($i < count($type))