2016-11-30 7 views
2

Если мой цикл выполняется 3 раза, а затем выход 0001,2,3, но мне нужноLoop Удаляет ноль перед Integer

0001 
0002 
0003 

Как получить этот вывод?

$i='0001'; 
foreach($test as $rows){ 
    echo $i; 
    echo '<br/>'; 
    $i++; 
} 
+0

начинаются с '$ я = 1', ** ** тогда вы можете добавить ведущие нули, если вы хотите отобразить их. – Federkun

ответ

1

Вы можете использовать str_pad()

$i = "0001"; 
for($j=0;$j<1000;$j++) { 
    echo str_pad($i++, 4, '0', STR_PAD_LEFT); 
    echo "<br/>"; 
} 
4

Использование printf с отступа спецификатора, например:

$test = range(1,11); 

$i = 0; 
foreach ($test as $rows) { 
    printf("%04d<br/>\n", ++$i); 
} 

Выходной

0001<br/> 
0002<br/> 
0003<br/> 
0004<br/> 
0005<br/> 
0006<br/> 
0007<br/> 
0008<br/> 
0009<br/> 
0010<br/> 
0011<br/> 

В этом примере 04 является заполнение спецификатор означает, что число (d) дополняется максимум 4 нулями.

+0

Как бы то ни было, я бы сказал. –

0

Вы можете обмануть немного,

$i = "1"; 
$y = "000"; //Added this 

while ($i < 4){ 
    echo $y . $i; 
    $i++; 
} 

В основном вы вторят 000 перед номером каждый раз.

+2

хорошо .. если цикл работает более чем в 9 раз, результат станет чем-то вроде «00010», который, вероятно, не соответствует требованиям OP. Ответ Русланса, вероятно, лучше подходит для нужд ОП. Редактировать: хорошо, я только что понял, что ответ Руслана также выведет 00010. (edit2: не после его редактирования) – Cashbee

+0

if ($ i> = 10) {Сделайте что-нибудь}. Но u'r, вероятно, правильно :) – Mitch

+0

Не отличное решение. –

Смежные вопросы