在程序运行之前,我是否可以在标题处显示总和?
while (($data = fgetcsv($handle, 1000, ","))) {
if($data[2] != $prevRow2) {
echo '</div>';
if ($prevRow2 != '') {
$stringData .= '</Payment>';
}
echo "<div id=\"row\">";
echo $sum;
$row++;
$sum = 0;
}
else { echo "<div id=\"filler\"></div>";}
foreach ($data as $key => $d) {
if ($key != 1) {
echo "<div class=\"field\">" .$d . "</div>";
}
}
$sum +=$data[6];
echo "<br/>";
echo "<div id=\"filler\"></div>";
$prevRow2 = $data[2];
}
fclose($handle);
}
答案 0 :(得分:3)
您可以缓冲输出,在循环运行后用总和打印出标题,然后输出缓冲区。
这可以简单地通过不回显但将所有值分配给变量并在末尾回显该变量 - 或者通过使用ob_start,ob_end_flush等函数来实现。
所以在你的例子中,而不是:
while (true) {
echo "lots of code";
echo "some variable: " . $variable;
$sum = $sum + 1;
}
写:
while (true) {
$output .= "lots of code";
$output .= "some variable: " . $variable;
$sum = $sum + 1;
}
echo $sum;
echo $output;