Pregunta

Necesito un número aleatorio de 4 dígitos

ahora mismo estoy usando rand (1000,9999) que siempre me da un número de 4 dígitos, pero elimino 0000-0999 como posibles resultados.

¿Cómo se rellena un número aleatorio?

(también esto se agregará a una cadena, ¿debo convertir el int como una cadena?)

gracias

¿Fue útil?

Solución

En los lenguajes de scripting como PHP, no tienes que lanzar el 99% de los casos.

El relleno se puede hacer usando

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

Explicaciones

el primer argumento de sprintf especifica el formato

  • % se mantiene para el segundo, tercero, cuarto argumento, etc. el primer % se reemplaza por el segundo argumento, el segundo % por el tercero, etc.
  • 0 permanece para el comportamiento de rellenar con 0 a la izquierda.
  • 4 permanece para " Al menos 4 caracteres deben imprimirse "
  • u permanece para un entero sin signo.

Otros consejos

sprintf("%04d", rand(0,9999))

debe hacer lo que quiera

Rápido y sucio ... ¿qué hay de hacer:

rand(10000,19999)

y toma los últimos cuatro dígitos:

substr(rand(10000, 19999), 1, 4)
str_pad(mt_rand(0, 9999), 4, '0', STR_PAD_LEFT);

Usa mt_rand () en lugar de rand (), es mejor.

Puede usar str_pad () o sprintf () para formatear tu cadena:

$rand = rand(0, 9999);
$str1 = str_pad($rand, 4, '0', STR_PAD_LEFT);
$str2 = sprintf('%04u', $rand);
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top