Как я могу ввести переменную внутри foreach

0

У меня есть 2 foreachs, один внутри другого.

Во втором я пытаюсь увеличить переменную.. Но она сбрасывается в каждом цикле...

Проверьте это...

$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

Что не так?

  • 4
    Я вижу только одну петлю.
  • 0
    $ result представляет собой массив с 2 значениями.
Теги:

3 ответа

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 переменную $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

  • 0
    Мужчина. Большое спасибо! Я новичок .. Ты понял! Проблема исправлена! Я установлю ваш ответ как можно скорее! (4 минуты)
  • 1
    Мое удовольствие @MarceloBarganha, мы все были там раньше! :)
Показать ещё 1 комментарий
1

Просто инициализируйте переменную $ i2 вне цикла foreach и это.

Как это:

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

Есть ли причина, по которой вы используете вторую для каждого цикла? Если все, что вы пытаетесь сделать со вторым циклом, состоит в том, чтобы увеличивать некоторые числа, возможно, это должен быть цикл for с a для каждого внутри него, как указано здесь для каждого цикла внутри цикла for

  • 0
    Это комментарий, а не ответ.
  • 0
    комментарий должен быть опубликован как ответ, когда вы не можете сделать комментарий, заявив, что очевидное, хотя это просто незрелый.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню