Search code examples
phptextrandomformatpad

simple rand() question


I need a random 4 digit number

right now im using rand(1000,9999) that always gives me a 4 digit number but i eliminates 0000-0999 as possible results.

how do you pad a random number?

(also this is eventually going to be added to a string do i need to cast the int as a string?)

thanks


Solution

  • In scripting languages like PHP, you don't have to cast in 99% of the cases.

    Padding could be done using

    sprintf("%04u", rand(0, 9999));
    

    Explanations

    the first argument of sprintf specifies the format

    • % stays for the second, third, forth etc. argument. the first % gets replaced by the second argument, the second % by the third etc.
    • 0 stays for the behaviour of filling with 0 to the left.
    • 4 stays for "At least 4 characters should be printed"
    • u stays for unsigned integer.