案例中每行的计数器

时间:2017-12-23 06:43:05

标签: php prestashop counter

我编写了这段代码,但我遇到的问题是每一行都显示相同的值“1”。我会为行的定位或编号计数器

Position
1
2
3
4

这里是代码:我需要改变什么或者我做错了什么?

case "18": 
                     $html.='<td class="product_tax_name product_list_content product_list_content_'.($j+1)
                .' product_list_col_'.($j+1).'">';

                for($i=1; $i<=1; $i=$i+1)
                        {
                   $html.= $i;
                   $i++;
                    }
                $html.='</td>';

                break; 


        }
        return $html;

1 个答案:

答案 0 :(得分:0)

您必须使用$j

增加++$j
 ++$j;

 $html.='<td class="product_tax_name product_list_content product_list_content_'.$j.' product_list_col_'.$j.'">';

例如

$j = 0;

foreach(range(1,5) as $blah){
   echo (++$j)."\n"; //you can ignore the line return "\n"
}

请参阅示例here

输出:

1
2
3
4
5

- 注意 - 为了在没有警告信息的情况下增加你必须首先定义所以就像我在上面的例子中所做的那样。

另一种方法是:

$j += 1;

与说

相同
$j = $j+1;

您的问题的关键在于您没有分配任何内容,只需将$j的值1添加$j并输出即可,而不会更改$j的值。我上面展示的是同时进行变量赋值和修改的方法。

因此,如果4等于5,您每次都会获得0。您可以将其设置为for($i=1; $i<=1; $i=$i+1){ $html.= $i; $i++; } ,也可以不对其进行定义。

我们还有这个混乱与

竞争
$i=3

这循环一次,你最后得到for($i=1; $i<=1; ++$i){ $html.= $i; } //outputs 1 。这也是不好的形式。

1

现在它仍然会$i=2时间循环,但您以for($i=1; $i<=10; ++$i){ $html.= $i; } //outputs 12345678910 as there is no separator here.

结束

<强>更新

如果上述for循环就是你所说的

  

$ html。=“把这里放在柜台(1,2,3,4,5)”

然后好吧,你只是循环一次,所以你只能获得一个数字。试试这个,

$html .= implode(",", range(1,10));
 //Outputs: 1,2,3,4,5,6,7,8,10

甚至更好

  $html.= "put here the counter(".implode(",", range(1,4)).")";

所以把它们放在一起(字面意思)

Builder

至于“范围”是什么,重要的是什么。那么告诉我这意味着什么,我会告诉你:

  

我会为行的定位或编号计数器

     

职位1 2 3 4