2016-09-02 16 views
0

CSVファイルを開き、データのすべての行をループしてそこからテーブルを作成するコードがあります。HTMLテーブルにCSVを読み込む - 特定のカラムを無視する

無視したい特定の列があります。特定の列を表示しないようにコードを変更するにはどうすればよいですか?

<?php 
    echo "<table>\n\n"; 
    $f = fopen("users.csv", "r"); 
    while (($line = fgetcsv($f)) !== false) { 
      echo "<tr>"; 
      foreach ($line as $cell) { 
        echo "<td>" . htmlspecialchars($cell) . "</td>"; 
      } 
      echo "</tr>\n"; 
    } 
    fclose($f); 
    echo "\n</table>"; 
+2

をあなたが無視したいか、単に値にそれを基づか列のインデックスを知っていますか? –

+0

はい、私はインデックスを知っています。 「3」、「4」、「20」。 – michaelmcgurk

答えて

2

あなたは、列のインデックスに基づか場合は、例えばそのような何かを行うことができます:あなたのCSVファイルが大きい場合

<?php 
    echo "<table>\n\n"; 
    $f = fopen("users.csv", "r"); 
    $idsColumnsNotWanted = array(3,4,20); //indexes of columns you don't want to display 
    while (($line = fgetcsv($f)) !== false) { 
      echo "<tr>"; 
      $numcolumn=0; 
      foreach ($line as $cell) { 
       if(!in_array($numcolumn,$idsColumnsNotWanted) 
        echo "<td>" . htmlspecialchars($cell) . "</td>"; 
       $numcolumn++; 
      } 
      echo "</tr>\n"; 
    } 
    fclose($f); 
    echo "\n</table>"; 
+0

ありがとう、@Julqas - 今すぐこれを試してみましょう。 – michaelmcgurk

+1

実際に表示したくない列のインデックスを置くことを忘れないでください。 – Julqas

+0

パーフェクション:-D私は実際にこれを変更して、私がしたい*の列を表示するようにしました。私たちが負荷を隠しているより少ない型付け。本当にありがとうございました:) – michaelmcgurk

0

は、in_array()機能は、多くの物事を遅くすることができます。

<?php 
$exclude = array(3 => 3, 4 => 4, 20 => 20); 
echo "<table>\n\n"; 
$f = fopen("users.csv", "r"); 
while (($line = fgetcsv($f)) !== false) { 
     echo "<tr>"; 
     foreach ($line as $index => $cell) { 
      if (! isset($exclude[ $index ])) 
       echo "<td>" . htmlspecialchars($cell) . "</td>"; 
     } 
     echo "</tr>\n"; 
} 
fclose($f); 
echo "\n</table>"; 

あなたはそれを使用し、他の方法で回避作業をしたい場合:

<?php 
$include = array(3 => 3, 4 => 4, 20 => 20); 
echo "<table>\n\n"; 
$f = fopen("users.csv", "r"); 
while (($line = fgetcsv($f)) !== false) { 
     echo "<tr>"; 
     foreach ($line as $index => $cell) { 
      if (isset($include[ $index ])) 
       echo "<td>" . htmlspecialchars($cell) . "</td>"; 
     } 
     echo "</tr>\n"; 
} 
fclose($f); 
echo "\n</table>"; 
関連する問題