2013-03-03 4 views
1

나는 아래 코드를 사용하여 csv 파일을 PHP로 html 테이블로 보여줍니다. 문제점은 csv 파일의 특정 열만 표시하는 방법입니다. 예를 들어 열 1,5,9,15를 표시합니다. 특정 필드를 선택하도록 코드를 수정하는 방법은 무엇입니까? (이 게시물이하는,PHP로 csv 파일의 특정 열을 읽는 방법

$data_as_array = explode(',',$data_as_csv); 
echo "This is the value in column #2: ".$data_as_array[1]; 

이 솔루션은 아직 행의 수를 고려하지 않습니다 사전에

감사합니다, 매튜

<?php 
$row = 1; 
if (($handle = fopen("donors.csv", "r")) !== FALSE) { 
     while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) { 
    $num = count($data); 
    if ($row == 1) { 
     echo '<tr>'; 
    }else{ 
     echo '<tr>'; 
    } 

    for ($c=0; $c < $num; $c++) { 

     if(empty($data[$c])) { 
      $value = "&nbsp;"; 
     }else{ 
      $value = $data[$c]; 
     } 
     if ($row == 1) { 

      echo '<td style="border-top: 1px solid rgb(111,180,224); border-left: 1px solid rgb(111,180,224); border-bottom: 1px solid rgb(111,180,224);" align="left" bgcolor="#0066cc" height="36" valign="middle" ><b><font color="#ffffff" size="2">&nbsp;&nbsp;'.$value.'&nbsp;&nbsp;</font></b></td>'; 
     }else{ 


      echo '<td style=" border-bottom: 1px solid rgb(111,180,224);" sdval="9" sdnum="1040;" align="left" bgcolor="#ffffff" height="25" valign="middle"><font color="#000000" size="2">&nbsp;&nbsp;'.$value.'&nbsp;&nbsp;</font></td>'; 
     } 
    } 

    if ($row == 1) { 
     echo '</tr>'; 
    }else{ 
     echo '</tr>'; 
    } 
    $row++; 
    } 

    echo '</tbody></table>'; 
echo '</center>'; 
    fclose($handle); 
} 
?> 
+0

cs v 파일에 필드 사이에 구분 기호가 있습니까? – ManuParra

답변

1
// before your while loop 
$wantedColumns = array(1,5,9,15); 

// ... 

for ($c=0; $c < $num; $c++) { 
    if (!in_array($c,$wantedColumns)) continue; 
    // .... 
+0

Perfct! 스티브는 잘 작동합니다. 또 다른 팁 : 제 1 행을 건너 뛰고 나 자신이 만든 행 (헤더)으로 바꾸고 싶습니다. 수행하는 방법? 사전에 tks! – mattew

+0

'if ($ row == 1) {print ' 내 헤더>'; 잇다; }'. – Steve

관련 문제