ランダムな 4 桁の番号が必要です
現在、常に 4 桁の数字を返す rand(1000,9999) を使用していますが、可能な結果として 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() を使用してください。