注意:未定义的偏移量:使用数组时为5

时间:2016-12-07 10:00:51

标签: php ascii

我想从ASC文件中提取数据。但是当我尝试从中提取数据时,它告诉我它有一个未定义的偏移量?

这是我用来提取数据的代码(错误发生在$ data2,$ data很好):

        $File       = $_FILES['file']['tmp_name'];
        $File2      = $_FILES['file2']['tmp_name'];
        $handle     = fopen($File, "r");
        $handle2    = fopen($File2, "r");
        $arrResult  = array();
        $arrResult2 = array();
        fgetcsv($handle);
        fgetcsv($handle);
        fgetcsv($handle);
        fgetcsv($handle);
        fgetcsv($handle);
        fgetcsv($handle);
        while (($data = fgetcsv($handle, 1000, ";")) !== FALSE && ($data2 = fgetcsv($handle2, 1000, ";")) !== FALSE) {



            //---------------------
            $artikelnmr       = $data[0];
            $barcode          = $data[1];
            $omschrijving_nl  = $data[2];
            $omschrijving_exp = $data[3];
            $bruto_prs        = $data[4];
            $staffel_prs      = $data[5];
            $aktie_prs        = $data[6];
            $bruto_antl       = $data[8];
            $staffel_antl     = $data[9];
            $aktie_aantal     = $data[10];
            $voorraad         = $data[15];
            $leverdatum       = $data[16];
            $besteld          = $data[17];
            $pallet_antl      = $data[19];
            $artikel_groep    = $data[22];
            $extra_info       = $data[27];


                //-----------------------
            $type             = $data2[0][0];
            $artikel          = $data2[0][1];
            $prijs1           = $data2[5];
            $prijs2           = $data2[6];
            $prijs3           = $data2[7];
            $prijs4           = $data2[8];
            $prijs5           = $data2[9];
                //----------------------

这是返回的错误:

  

(!)注意:未定义的偏移量:C:\ wamp64 \ www \ jodeco \ import.php中的5   第53行调用堆栈

时间记忆功能位置

1 0.0011 414880 {main}()... \ import.php:0

2 0.0032 430384 importdb()... \ import.php:222

所有其他数据点(5到9)也会发生这种情况

以下是ASC文件的几行:

 0    1                                   2                    3  4   5        6        7        8        9             10     11
 ---------------------------------------------------------------------------------------------------------------------------------
 5    ;790148                              ;                    ;  ;   ;    4.35;    0.00;        ;        ;  0.00;      ;      ;
 1    ;790148                              ;                    ;  ;   ;    4.35;    0.00;        ;        ;  0.00;      ;      ;

1 个答案:

答案 0 :(得分:1)

您的代码应该像

 $artikelnmr = isset($data[0]) ? $data[0] : "";

Insted of

  $artikelnmr = $data[0];

由于$data[5]数组中找不到$data,因此您获得了未定义的偏移量 尝试isset()检查是否设置了偏移量。