CSVファイルからHTMLテーブルを生成するPHPスクリプトがあります。PHPで複数のセルが空の場合は行をスキップ
現在、情報が欠落しているセルがあれば、その行はスキップされます。しかし、1つ以上のセルが見つからなかった場合、行をスキップすると好きです。 行に空のセルが2つある場合は、スキップする必要があります。
私はそれを//edit here
と記しましたが、これを達成する方法は不明です。
<?php
$idsColumnsWanted = array(0,1,8,19);
echo "<table class='table table-bordered' id='example'>\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 $i => $cell) {
// Skips all columns not in your list
if (! in_array($i, $idsColumnsWanted)) continue;
// edit here
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>";
?>
は、代わりに、ブール変数のカウンタを使用して、セルが空の場合、それを増加させ、それが大きいかどうかを確認ループの後の1より大きい。 – jeroen
ここに行く:http://stackoverflow.com/questions/8882981/check-if-variable-exist-more-than-once-in-array。行の複数の値(セル)が空の場合は、$ is_emptyをtrueに設定します。 –
@jeroenでは、各行の開始時にカウンタをリセットすることを忘れないでください。ところで、thead/trロジックは疑わしいようです。 – Dfaure