2012-11-16 37 views
0

我試圖用php讀取CSV文件。我一直有這樣的情況,我知道數據是在一定的結構中。但是,我有一個CSV,每行可能有不同數量的行。多維csv

這裏有一個小例子:

121, 32, 28, 23, 43 
322, 43, 43, 44 
435, 23, 43 
343, 56, 56, 678 

我想輸出的東西,我想了解一下它是這樣:
在第1行第一個數字,第1行中第二個數字,在第1行第3號 - 換行符
在第1行第一個數字,第1行中第二個數字,在1排4號 - 線打破
第一個數字在第1行,第1行中第二個數字,在第1行第5號 - 線打破

在第2行第一個數字,在第2行第二數目,在2行第三數 - 線打破
第一個數字行1中,第二數量的第1行中,4RD數第2行 - 行中斷

等........

我只是很難找出如何嵌套這些循環。

回答

0

根據你發佈的內容,我想出了這個模擬。我希望它有幫助。

$csv = array(
    array(121, 32, 28, 23, 43), 
    array(322, 43, 43, 44), 
    array(435, 23, 43), 
    array(343, 56, 56, 678) 
); 

foreach($csv as $row){ 
    foreach($row as $key=>$column){ 
     if($key<2){ 
      continue; 
     } 
     echo $row[0].', '.$row[1].', '.$column.'<br>'; 
    } 

} 
0

我沒有得到什麼問題。

您可以將該文件讀取到二維數組中。

$file = "file.csv"; 
$data_arr = array(); 

if (($handle = fopen($file, 'r')) !== FALSE) 
{ 

    $rownum = 1; // change to 0 to start counting from 0 

    while (($row = fgetcsv($handle, 0, ",")) !== FALSE) 
    { 

     $cellnum = 1; // change to 0 to start counting from 0 

     foreach($row as $cell) 
     { 
      // optional charset conversion 
      // $cell = iconv("windows-1250", "UTF-8", $cell); 

      $data_arr[rownum][cellnum] = $cell; 
      $cellnum++; 
     } 
     $rownum++; 
    } 
    fclose($handle); // close file 

} 
else 
{ 
    echo "Error. Cant open ".$file; 
}