простой вопрос rand () - PullRequest
       23

простой вопрос rand ()

1 голос
/ 23 октября 2009

Мне нужно случайное 4-значное число

сейчас я использую rand (1000,9999), который всегда дает мне 4-значное число, но я исключаю 0000-0999 как возможные результаты.

как вы набираете случайное число?

(также это в конечном итоге будет добавлено к строке, нужно ли мне приводить int как строку?)

спасибо

Ответы [ 5 ]

12 голосов
/ 23 октября 2009

В таких скриптовых языках, как PHP, вам не нужно приводить в 99% случаев.

Заполнение может быть сделано с помощью

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

Пояснения

первый аргумент sprintf указывает формат

  • % остается для второго, третьего, четвертого и т. Д. Аргумента. первый % заменяется вторым аргументом, второй % третьим и т. д.
  • 0 остается для поведения заполнения с 0 влево.
  • 4 остается для "По крайней мере 4 символа должны быть напечатаны"
  • u остается для целого числа без знака.
6 голосов
/ 23 октября 2009
sprintf("%04d", rand(0,9999))

должен делать то, что вы хотите

3 голосов
/ 23 октября 2009
str_pad(mt_rand(0, 9999), 4, '0', STR_PAD_LEFT);

Используйте mt_rand () вместо rand (), лучше.

3 голосов
/ 23 октября 2009

Быстро и грязно ... как насчет:

rand(10000,19999)

и взять последние четыре цифры:

substr(rand(10000, 19999), 1, 4)
1 голос
/ 23 октября 2009

Вы можете использовать str_pad () или sprintf () для форматирования вашей строки:

$rand = rand(0, 9999);
$str1 = str_pad($rand, 4, '0', STR_PAD_LEFT);
$str2 = sprintf('%04u', $rand);
...