如何以这样的方式编写它:$计数器值在第一次迭代时为1,在每个后续循环中为0?
$counter =1;
foreach($result):
$number = $result['value'] + $counter;
db->update($result['value'] => $number);
$counter--;
endforeach;
基本上我的目标是在第一个循环中将$ number设为$ number + 1,然后为每个后续循环获得$ number + 0。
$ result ['value']的值将在第一个循环后设置为$ number + 1,因此在下一个循环中$ result ['value']将是所需的未更改值。
答案 0 :(得分:3)
我没有看到问题所在的位置。
$counter = 1;
foreach($result):
$number = $result['value'] + $counter;
// Once you have used your variable, just set it to zero...
$counter = 0;
db->update($result['value'] => $number);
endforeach;
答案 1 :(得分:2)
为什么不使用这样的东西:
$counter
是否为1
0
这会给你一些看起来像这样的代码:
$counter = 1;
foreach($result):
$number = $result['value'] + $counter;
db->update($result['value'] => $number);
if ($counter == 1) {
$counter = 0;
}
endforeach;
或者,您也可以在循环结束时将$counter
设置为0
,而不是测试任何内容:
$counter = 1;
foreach($result):
$number = $result['value'] + $counter;
db->update($result['value'] => $number);
$counter = 0;
endforeach;
有了这个:
$counter
将为1
,在循环之前初始化0
0
- 即它将保持在0
。答案 2 :(得分:0)
代码看起来像PHP,虽然它在语法上不合法。我假设迭代变量(此处称为$results
)具有从0开始的数字键:
foreach($results as $counter => $result):
$number = $result['value'] + !$counter;
注意到否定。