0

20桁の数字の文字列を生成する必要があります。20個のゼロで始まり、20個のナインで終わります。rand(0,9)これは、通常のforループを実行することで簡単に実行できます。

for ($i = 0; $i < 20; $i++)
{
   $rng_salt .= rand(0,9);
}

しかし、ループはいわば長いプロセスです。mt_rand(00000000000000000000, 99999999999999999999)これと同じこと、または似たようなことをどのように行うかを試してみたいと思います。できれば、ループを廃止して、可能であれば1行に分割したいと思います。

4

2 に答える 2

1

ここで箱の外で考えます。次の小数までの範囲の乱数を生成し、最初の数字 [1] を切り捨てます。

$rng_salt = substr(mt_rand(10000000000000000000, 199999999999999999999),1,20)

substr パラメータを確認してください。私は数字から外れている可能性があります。

于 2012-10-03T22:41:29.997 に答える
1

ループ全体を 1 行に収めることができます

for($i = 0, $rng_salt = ""; $i < 20; $i ++, $rng_salt .= mt_rand(0, 9));
var_dump($rng_salt);

遊び回ることもできます

$rng_salt = implode("",array_map(function($var){ return mt_rand(0, 9);}, range(0,19)));
var_dump($rng_salt);

シャッフルしてみたらどうですか

$rng_salt = array_merge(range(0,9),range(0,9));
shuffle($rng_salt);
var_dump(implode("",$rng_salt));
于 2012-10-03T22:38:07.357 に答える