более простой способ получить счетчик из цикла while?

#php #while-loop

#php #цикл while

Вопрос:

У меня есть следующее:

 $counter = 1;   
while($row= mysql_fetch_assoc($result)) {
    $counter2 = $counter  ;

    echo($counter2 . $row['foo']);
}
  

Есть ли более простой способ получить 1,2,3 и т.д. Для каждого результата или это лучший способ?

Спасибо

Комментарии:

1. Почему вы просто не используете $counter переменную?

Ответ №1:

Вам не нужен $ counter2. $ counter — это нормально. Вы даже можете сделать это в той же строке, что и echo, если используете preincrement вместо postincrement.

 $counter = 0;   
while($row= mysql_fetch_assoc($result)) {
    echo(  $counter . $row['foo']);
}
  

Комментарии:

1. Почему вы получили повышение? Вы не показали ему его первую ошибку ($ counter = 2)?

2. Он постинкрементировал $counter, поэтому $ counter2 получит значение $ counter до того, как оно будет увеличено. В этой версии используется предварительное включение, поэтому $ counter получит значение 1 до того, как оно будет повторено в первый раз.

3. Спасибо. Я удаляю свой ответ, хотя я был быстрее вас, но никто не поддерживает меня.

Ответ №2:

Я знаю, что это не совсем то, о чем вы просили, но почему бы вам просто не использовать цикл for вместо while?

 for ($i = 0; $row = mysql_fetch_assoc($result);   $i) {
    echo $i . $row['foo'];
}
  

Комментарии:

1. Интересное использование конструкции for. Нужно это запомнить.