1

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

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

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

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>
4

1 回答 1

0

您的for循环以 1 开始并以sizeof' 元素结束。数组索引在 PHP 中为零,所以你应该这样做

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

反而。我也取而代之sizeof()count()但这是一个偏好问题......

于 2013-08-27T05:32:58.493 回答