2016-12-07 101 views
0

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

这是我用它来提取数据的代码(在$数据2时出现错误,$数据是罚款):

 $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 5:\ wamp64 \ WWW \ jodeco \ import.php 上线53调用堆栈

时间记忆功能定位

1 0.0011 414880 {主}()... \ 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;  ;  ; 
+0

使用'fgetcsv'时,请注意文件的最后一行。如果这最后一行仅包含回车符,则会抛出此错误。 –

回答

0

您的代码应该是这样

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

$artikelnmr = $data[0]; 

insted的你得到了一个未定义偏移,因为$data[5]不是在你的$data阵列发现 尝试isset()检查设置或不偏移。

+0

我没有任何$数据的问题。我有$ data2的问题 –

+0

make'setset($ data2 [5])? $ data2 [5]:“”;'试试这个..等等... –