Koenig
а зачем вообще трогать значения элементов, ведь нам нужно их количествону так иначе как запустить foreach($array как $что?)
Конечно правильнее было бы использовать while, тогда значений не генерировалось бы вообще.
do whileэто тот же while, просто условие проверяется после выполнения цикла, а не до.