2012-11-16 3 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에서 5 수는 1 행에
첫 번째 숫자 휴식 - 라인 중단

2 행의 첫 번째 숫자, 2 행의 두 번째 숫자는 행 2 번째 숫자는 - 라인 등

및 휴식 - 라인 2 행에 1 행, 제 4 회 수에 1 행, 두 번째 숫자에
첫 번째 숫자를 휴식 ........

난 그냥 이러한 루프를 중첩하는 방법을 알아 내려고 노력하고 있습니다.

답변

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

무엇이 문제인지 알 수 없습니다.

이 파일을 2 차원 배열로 읽을 수 있습니다.

$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; 
}