因为循环不能正常工作 - 有时会跳过它

时间:2013-08-27 05:26:04

标签: php for-loop

我有一个名为定制礼品盒的产品,有不同的尺寸,如5,9,12等。

当用户选择礼品盒中的商品并添加到购物车时,我也会使用巧克力的数量来获取这些巧克力名称。

在下面的代码中,我写了如果产品名称包含自定义,然后在for循环中使用session获取相关巧克力。

For循环正常工作,但有时它不会。

如何解决这个问题?

<?php 
if(stristr($this->getProductUrl(),"customized")){
?>
<div>
<?php
echo "<br/>";

$itid = $_item->getId();
echo $itid;
$strrep = str_replace(' ','_',$this->htmlEscape($this->getProductName()));
for($k=1;$k<=sizeof($_SESSION[$strrep."item".$itid]);$k++){
  if($_SESSION[$strrep."item".$itid][$k]!=""){
    echo "&nbsp;&nbsp;&nbsp;<font size='1px'>".$_SESSION[$strrep."qty".$itid][$k]." x ".$_SESSION[$strrep."item".$itid][$k]."</font><br/>";
  }
}
?>

</div>

1 个答案:

答案 0 :(得分:0)

您的for循环以1开头,并以sizeof的元素结束。数组索引在PHP中基于零,因此您应该

for ($k=0;$k<count($_SESSION[$strrep."item".$itid]);$k++){
  ...
}

代替。我还将sizeof()替换为count(),但这是一个偏好的问题......