在foreach循环中打印最后一次迭代

时间:2014-06-12 19:21:33

标签: php

我有这个功能:

    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。 提前谢谢!

1 个答案:

答案 0 :(得分:1)

一种选择是延迟打印,直到循环结束。

在循环的每次迭代中,使用当前值更新变量;因此,每次迭代都会替换该值,并且在最后一次迭代完成后,该值将是最后一次迭代的值。

然后最后你可以打印这个值。

然而,在你的代码中它甚至更简单,因为你打印的值只是一个递增值,每个循环一次。所以你已经存储了值($ i),所以只需在循环之后而不是在循环中打印它。