如何在foreach中增加变量

时间:2015-02-06 02:57:14

标签: php

我有两个foreach,一个在另一个里面。

在第二个中,我试图增加一个变量..但它正在每个循环中被重置......

检查出来......

$i2 = 0;
foreach($result as $line) {
   echo "Foreach begins. i2 =".$i2; // Foreach begins. i2 = 0
   $i2++;
   echo "i2 incremented. i2 =".$i2; // i2 incremented. i2 = 1
}

但是循环结果显示了这个文本:

Foreach begins. i2 = 0
i2 incremented. i2 = 1

Foreach begins. i2 = 0
i2 incremented. i2 = 1

我试图获得:

Foreach begins. i2 = 0
i2 incremented. i2 = 1

Foreach begins. i2 = 1
i2 incremented. i2 = 2

出了什么问题?

3 个答案:

答案 0 :(得分:2)

我认为你在另一个看起来像这样的循环:

foreach($thing as $result) {
    $i2 = 0;
    foreach($result as $line) {
         echo "Foreach begins. i2 =".$i2; // Foreach begins. i2 = 0
         $i2++;
         echo "i2 incremented. i2 =".$i2; // i2 incremented. i2 = 1
    }
}

您的问题是,在原始(第一个)foreach()的每个循环中,您重置了$i2变量。

只需将该变量移出第一个foreach()范围即可,它应该有效:

$i2 = 0;
foreach($thing as $result) {
    foreach($result as $line) {
         echo "Foreach begins. i2 =".$i2; // Foreach begins. i2 = 0
         $i2++;
         echo "i2 incremented. i2 =".$i2; // i2 incremented. i2 = 1
    }
}

Example

答案 1 :(得分:1)

只需在foreach循环之外初始化$ i2变量即可。

像这样:

 $i2 = 0;
 foreach(){
      foreach(){
         $i2++;
      }
 }

答案 2 :(得分:0)

你有没有理由在每个循环中使用第二个?如果您尝试使用第二个循环所做的只是增加一些数字,那么它可能应该是一个for循环,其中每个内部都有一个,如此处所示for each loop inside of for loop