1

ランダムな 4 桁の番号が必要です

現在、常に 4 桁の数字を返す rand(1000,9999) を使用していますが、可能な結果として 0000-0999 を除外しています。

どのように乱数をパディングしますか?

(また、これは最終的に文字列に追加される予定ですが、int を文字列としてキャストする必要がありますか?)

ありがとう

4

5 に答える 5

12

PHP のようなスクリプト言語では、99% のケースでキャストする必要はありません。

パディングは次を使用して行うことができます

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

説明

の最初の引数はsprintf形式を指定します

  • %2 番目、3 番目、4 番目などの引数にとどまります。最初%の引数は 2 番目の引数に置き換えられ、2 番目%は 3番目の引数に置き換えられます。
  • 00左にで埋める動作にとどまります。
  • 4「少なくとも4文字を印刷する必要があります」のままです
  • u符号なし整数のままです。
于 2009-10-23T14:05:37.167 に答える
6
sprintf("%04d", rand(0,9999))

やりたいことをやればいい

于 2009-10-23T14:05:35.750 に答える
3

すばやく汚い...次のことはどうですか:

rand(10000,19999)

最後の 4 桁を取ります。

substr(rand(10000, 19999), 1, 4)
于 2009-10-23T14:04:46.917 に答える
3
str_pad(mt_rand(0, 9999), 4, '0', STR_PAD_LEFT);

rand() の代わりに mt_rand() を使用してください。

于 2009-10-23T14:09:13.867 に答える
1

str_pad()またはsprintf()を使用して、文字列をフォーマットできます。

$rand = rand(0, 9999);
$str1 = str_pad($rand, 4, '0', STR_PAD_LEFT);
$str2 = sprintf('%04u', $rand);
于 2009-10-23T14:08:00.017 に答える