1

以下のコードを使用して、csvファイルをphpを含むhtmlテーブルとして表示しています。私の問題は、csvファイルの特定の列のみを表示する方法です。たとえば、列番号1、5、9、15を表示します。その特定のフィールドを選択するようにコードを変更するにはどうすればよいですか?

よろしくお願いします、マシュー

 <?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);
 }
 ?>
4

2 に答える 2

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

// ...

for ($c=0; $c < $num; $c++) {
   if (!in_array($c,$wantedColumns)) continue;
   // ....
于 2013-03-03T22:43:31.693 に答える
0

CSV文字列を配列に変換します。

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

このソリューションはまだ行数を考慮していませんが、この投稿は考慮しています(受け入れられた回答を参照):
PHPとfgetcsv関数を使用してCSVファイルから配列を作成する方法

于 2013-03-03T22:45:17.573 に答える