2016-12-07 52 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]:「」;'試試這個..等等... –