0

私はPHPでこれを持っています:

$_chars = "0123456789ZXCVBNMASDFGHJKLQWERTYUIOP";

for($l = 0; $l<4; $l++){
    $temp = str_shuffle($_chars);
    $_charcode .= $temp;
}

4文字だけ生成したい。現在、6 を生成しています。$l を編集してみましたが、何も変わりません。

4

2 に答える 2

2

ドキュメント ( http://php.net/str_shuffle ) の状態:

str_shuffle() は文字列をシャッフルします。可能なすべての順列が 1 つ作成されます。

実際に4 * strlen($_chars)文字を生成する必要があります…</p>

私はあなたが望むと仮定します:

$_charcode .= $temp[0]; // only one character
于 2013-10-10T18:07:01.740 に答える
1

ドキュメントから:

str_shuffle()文字列をシャッフルします。可能なすべての順列が 1 つ作成されます。

シャッフルされた文字列から 1 文字だけを取得する必要があります。

$_charcode .= $temp[0];

したがって、コードは次のようになります。

$_chars = "0123456789ZXCVBNMASDFGHJKLQWERTYUIOP";

$_charcode = ''; // initialize the variable with an empty string
for($l = 0; $l<4; $l++){
    $temp = str_shuffle($_chars);
    $_charcode .= $temp[0];
}
echo $_charcode;

出力 (例):

8VG6

デモ!

于 2013-10-10T18:06:54.153 に答える