0

このコードで配列を抽出しようとしていますが、そのエラーが発生します。しかし、コードから while ブロックを削除し、インデックスのみを指定すると機能します。これがコードです。

    //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++;
        }

    }
4

3 に答える 3

0

$type最初のループでは、配列に値を追加していません。毎回変数を上書きしています。これを試して:

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

編集:そして@thstが言ったこと

于 2013-11-14T23:41:01.870 に答える
0

あなたは1回から頻繁にループしています;)

インデックス番号はゼロから始まります。配列に要素が 1 つある場合、定義されている唯一のインデックスは 0.count()です。 は 1 を返します。 'til をループ$i<= 1すると、 で停止し$i = 1ます。ID が 1 の要素はありません。

そのため、代わりに使用しますwhile($i < count($type))

于 2013-11-14T23:41:59.153 に答える