Increment tal som "001" problem

Tags:    php

Hej, jeg har et lille problem i et script jeg er ved at lave.
Jeg har lavet en løkke der skal udskrive en række tal, men hvis start tallet er, f.eks. 001, og jeg bruger ++ operatoren får jeg bare dette output:
001
2
3
4
5
osv.

i får lige noget kode:
Fold kodeboks ind/udKode 


er der nogen der har en idé til hvad der kan gøres?



6 svar postet i denne tråd vises herunder
4 indlæg har modtaget i alt 4 karma
Sorter efter stemmer Sorter efter dato
Det er længe siden at jeg har rodet med php, men generelt, og det er uanset sprog, kan dette ikke "bare" gøre.

$test1 = 001; /* $test1 indeholder værdien 1, de foranstillede nuller ignoreres. */

$test2 = "001" /* $test2 indeholder strengen "001". */
++$test2 /* $test2 indeholder formentlig strengen "002", så metoden virker altså, men kun til og med "009" hvor der vil opstå problemer */

Som sagt er jeg ikke længere inde i hvordan php er skruet sammen, men det her er et af de koncepter der generelt er ens fra sprog til sprog.



$tal = 2;
$tal = sprintf('%03d',$tal); //$tal er nu 002




Det er jo simpel matematik og vil logisk nok ikke virke... 001 = 1 & 00000000000001 = 1

Men Jonas' eksempel virker ganske fint..



Indlæg senest redigeret d. 05.12.2007 22:00 af Bruger #10216
eller functionen der er lavet til at pad strenge
str_pad($i, 3, "0", STR_PAD_LEFT);



hmm, findes der så ikke et eller smart trick man kan bruge?



mange tak for svarene, jeg har brugt Nørdens str_pad funktion, som virker helt fint!



t