質問

ランダムな4桁の数字が必要です

現在、rand(1000,9999)を使用すると、常に4桁の数字が得られますが、可能な結果として0000-0999が削除されます。

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

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

ありがとう

役に立ちましたか?

解決

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

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

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

説明

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

  • は、2番目、3番目、4番目などの引数にとどまります。最初のは2番目の引数に置き換えられ、2番目のは3番目の引数に置き換えられます。
  • 0 は、左側に 0 を入力する動作のために残ります。
  • 4 は"少なくとも4文字を印刷する必要があります"のままです
  • u は符号なし整数のままです。

他のヒント

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

必要なことを行う必要があります

手早くて汚い...どうしよう:

rand(10000,19999)

最後の4桁を取得します:

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

rand()の代わりにmt_rand()を使用します。より良いです。

str_pad()または sprintf()で文字列をフォーマットします:

$rand = rand(0, 9999);
$str1 = str_pad($rand, 4, '0', STR_PAD_LEFT);
$str2 = sprintf('%04u', $rand);
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top