我有这个功能:
function cart () {
$i=0;
foreach ($_SESSION as $name => $value) {
$i++;
if ($value >0) {
if (substr($name, 0,5) == 'cart_') {
$id = substr ($name ,5 , strlen($name)-5);
$get = mysql_query('SELECT id,name FROM products WHERE id='.mysql_real_escape_string((int)$id));
echo $i;
}
}
}
}
?>
如何打印上一次迭代?例如:现在在任何添加的会话中出现123.只能打印3。 提前谢谢!
答案 0 :(得分:1)
一种选择是延迟打印,直到循环结束。
在循环的每次迭代中,使用当前值更新变量;因此,每次迭代都会替换该值,并且在最后一次迭代完成后,该值将是最后一次迭代的值。
然后最后你可以打印这个值。
然而,在你的代码中它甚至更简单,因为你打印的值只是一个递增值,每个循环一次。所以你已经存储了值($ i),所以只需在循环之后而不是在循环中打印它。