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

Php 打印foreach循环中的最后一次迭代,php,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($na

我有这个功能:

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

一个选项是延迟打印,直到循环完成

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

最后,您可以打印该值

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