-1
私はこのコードを使ってCSVを取り出し、そこからHTMLテーブルを生成します。CSVからHTMLテーブルを生成する - 不要なカラムを無視する
$idsColumnsWanted
という名前のarray
があります。このテーブルでは、テーブルにデータを表示する列のみを格納する予定です。
残念ながら、列0 &1が表示された後、残念ながら現在の動作は表示されますが、それ以外は表示されません。それ以降はすべてを無視します。
どうしたのですか?おそらく、
<?php
$idsColumnsWanted = array(0,1,16);
echo "<table class='table table-bordered'>\n\n";
$f = fopen("users.csv", "r");
$first_line=false;
while (($line = fgetcsv($f)) !== false) {
// Restart column index
$i = 0;
$row ="";
if($first_line == false) {
$row = "<thead><tr>";
$col= "th";
}
else {
$row = "<tr>";
$col= "td";
}
$is_empty = false;
foreach ($line as $cell) {
// Skips all columns not in your list
if (! in_array($i, $idsColumnsWanted)) continue;
if ($cell !== '') {
$row .= "<".$col.">" . htmlspecialchars($cell) . " </".$col.">";
} else {
$is_empty = true;
}
// Increase index
$i++;
}
if($first_line == false) $row .= "</tr></thead>";
else $row .= "</tr>";
$first_line=true;
if ($is_empty) {
continue;
} else {
echo $row;
}
}
fclose($f);
echo "\n</table>";
?>
をあなたは '$のIを意味します(!in_array($ I、$ idsColumnsWanted))'の最初の呼び出し 'の後に続けています'そのような場合にインクリメントされることはありません。インクルードされない値として残されます。 –
' foreach($ line as $ i => $ cell) 'がカラムナンバリングを扱うのをなぜ許可しないのですか? –
@マーク・ベーカーそれは2番目の1つは治療を働いた - 答えとして追加してください&私は緑のダニをします。あなたの時間と説明のために本当にありがとうございます:-) – michaelmcgurk