simples rand () pergunta
Pergunta
Eu preciso de um aleatória 4 número de dígitos
agora mesmo estou usando rand (1000,9999) que sempre me dá um número de 4 dígitos, mas eu elimina 0000-0999 como resultados possíveis.
Como você pad um número aleatório?
(também isso está indo eventualmente ser adicionado a uma corda que eu preciso para lançar o int como uma string?)
graças
Solução
Em linguagens de scripting como PHP, você não tem que elenco em 99% dos casos.
Padding poderia ser feito usando
sprintf("%04u", rand(0, 9999));
Explicações
o primeiro argumento de sprintf
especifica o formato
-
argumento
- estadias
%
para o segundo, terceiro, adiante etc. o primeiro%
é substituído pelo segundo argumento, a segunda%
pela terceira etc. - estadias
0
para o comportamento de enchimento com0
à esquerda. - estadias
4
para "Pelo menos 4 caracteres devem ser impressos" - estadias
u
para inteiro sem sinal.
Outras dicas
sprintf("%04d", rand(0,9999))
deve fazer o que quiser
rápida e suja ... que tal fazer:
rand(10000,19999)
e tomar os últimos quatro dígitos:
substr(rand(10000, 19999), 1, 4)
str_pad(mt_rand(0, 9999), 4, '0', STR_PAD_LEFT);
Use mt_rand () em vez de rand (), é melhor.
Você pode usar str_pad () ou sprintf () para formatar seu texto:
$rand = rand(0, 9999);
$str1 = str_pad($rand, 4, '0', STR_PAD_LEFT);
$str2 = sprintf('%04u', $rand);