如何使用php读取csv文件的特定列

i'm using the code below to show a csv file as html table with php. My issue is how to show only specific columns of the csv file. For example I'd show the columns number 1,5,9,15. How can be modified the code to select that specific fields?

Thanks in advance, Mattew

 <?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);
 }
 ?>
douyi2798
douyi2798 你的csv文件在字段之间有一个分隔符?
7 年多之前 回复

2个回答

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

// ...

for ($c=0; $c < $num; $c++) {
   if (!in_array($c,$wantedColumns)) continue;
   // ....
duanruinong0619
duanruinong0619 if($ row == 1){print'<tr> <td> my </ td> <td> header> </ td> </ tr>'; 继续; }。
7 年多之前 回复
dougua2309
dougua2309 完善! 它非常适合史蒂夫。 请注意另一个提示:我想跳过第一行并替换为我自己制作的一行(标题)。 怎么做? 提前!!
7 年多之前 回复



将您的CSV字符串转换为数组:</ p>

  $ data_as_array = explode('  ,',$ data_as_csv); 
echo“这是第2列中的值:”。$ data_as_array [1];
</ code> </ pre>

此解决方案不考虑 但是这个帖子的行数(见接受的答案):

如何使用PHP和fgetcsv函数从CSV文件创建数组 </ p>
</ div>

展开原文

原文

turn your CSV string into an array:

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

This solution doesn't consider yet the number of rows, this post does (see accepted answer):
How to create an array from a CSV file using PHP and the fgetcsv function

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问