如何在PHP中没有循环的情况下增加$ var值?

时间:2010-11-18 14:31:30

标签: php opencart

我有这个问题,我希望用1增加一个值并将其应用于我的HTML,但我不能使用for()while()循环(至少我认为我可以' T)。我正在定制一个电子商品计划(opencart),我的PHP知识还不足以解决这个问题。

此功能可显示商店中的类别。它使用通过$var .= "value"不断更新的变量。

我到目前为止我知道有多少子类别,但我不知道如何将这个范围应用于我的HTML。

我正在努力解决下面的情况

<ul id="cats">
 <li id="cat1">Cat
  <ul id="sub1">
   <li>item</li>
   <li>item</li>
  </ul>
 </li>
 <li id="cat2">Cat
  <ul id="sub2">
   <li>item</li>
   <li>item</li>
  </ul>
 </li>
</ul>

我不知道如何增加第二个无序列表的数量。在生成第二个无序列表的代码下面。


[..]
$cPiD = strlen($parent_id);

if ($results) {
 if ($parent_id == 0) {
  $output .= '<ul id="cats">';
 } else {
  $output .= '<ul id="sub'.$cPiD.'">';
 }
}

[..]

变量$cPiD包含子类别的总数(在本例中为2)。我希望此变量自动将正确的数字应用于无序列表(因此将id="sub1"应用于第一个无序列表,将id="sub2"应用于第二个无序列表(如上例所示)。

问题是我无法在for()部分之后使用else循环,因为在我的HTML中我将获得两个 <ul>标记一个。

在PHP代码下面发生的一切


$category_id = array_shift($this->path);
$output = '';
$results = $this->model_catalog_category->getCategories($parent_id);
$count = 0;
$cPiD = strlen($parent_id);

if ($results) { if ($parent_id == 0) { $output .= '<ul id="cats">'; } else { $output .= '<ul id="sub'.$cPiD.'">'; } }

foreach ($results as $result) { $count++; if (!$current_path) { $new_path = $result['category_id']; $output .= '<li id="cat'.$count.'">'; } else { $new_path = $current_path . '_' . $result['category_id']; $output .= '<li>'; }

$children = '';

$children = $this->getCategories($result['category_id'], $new_path);

$output .= $result['name'];

$output .= $children;

if (!$current_path) { $output .= '</li>'; } else { $output .= '</li>'; }

}

if ($results) { if ($parent_id == 0) { $output .= '</ul>'; } else { $output .= '</ul>'; } }

有人可能知道如何解决这个问题吗?

修改 哦,我尝试在foreach()循环中添加以下构造,但是当某些类别没有任何子类别时会出现问题。

if (!$current_path) {
 $output .= '$result['name'] . ' <ul id="sub'.$count.'">';
}else{
 $output .= $result['name'];
}

1 个答案:

答案 0 :(得分:0)

您可以使用:

// at the top of your code (ouside of the loop)
$cPiD = 1;
// inside the loop you need to increment the parameter 
$output .= '<ul id="sub'.$cPiD++.'">';

每次使用该项目后,其值将增加1.(在使用之后)