Как сделать цикл от 0001 до 239000
Есть номера бланков от ЕН0001 До ЕН259899. Как реализовать цикл так, чтобы в 0001 нули не исчезали? Там может быть от 4 до 5 нулей.
Ответы (2 шт):
Чтобы дополнить строку нуля в начале - можно использовать str_pad.
Например:
echo str_pad(1, 10, '0', STR_PAD_LEFT); // 0000000001
дополнит строку 10-ю нулями перед цифрой 1
Зная это, можно организовывать просто цикл от 1, дополняя нулями впереди по необходимому количеству
для JS есть аналог:
https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/String/padStart
Как уже сказал @teran, цикл вам не поможет, нужно форматировать вывод значения.
Относительно javascript
Есть встроенная функция .padStart() | поддержка.
console.log('1'.padStart(4, 0));
console.log('14'.padStart(4, 0));
console.log('321'.padStart(4, 0));
console.log('1232'.padStart(4, 0));
Ну или самопал:
function func(num, len) {
return num >= 10**len ? num : (10**len + num+'').substr(1);
}
console.log(func(1, 4));
console.log(func(14, 4));
console.log(func(321, 4));
console.log(func(1232, 4));
В первый параметр передаётся число которое нужно форматировать, во второй длину строчки, например func(1, 2) - 01, func(134, 5) - 00134 и т.п.