1

私はクライアントのために働いていて、彼は T56、N78、J89 などのように [char][int][int] の形式で生成されたコードを望んでいました... char は大文字でなければなりません。

急ごしらえとして、私はこの関数を最も単純だと思ったので書きました

function randomizer(){
    $chars = array("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z");
    return $chars[array_rand($chars)].mt_rand(10, 99);
}

しかし、他にも多くの効率的なソリューションがあるのではないかとずっと考えていました。上記はうまくいきますが、そのようなコードを大量に生成する必要があるため、効率を重視しています。

どこから始めるのが良いでしょう!

4

3 に答える 3

1
echo chr(mt_rand(65,90)).str_pad((rand()%100),2,0,STR_PAD_LEFT);
于 2012-07-30T20:29:20.433 に答える
0
function getRandStr()
{
    return sprintf("%s%02d", chr(mt_rand(65, 90)), mt_rand(0, 99));
}

編集:コメントに従って変更されました。@DaveRandom に感謝します。

于 2012-07-30T20:24:30.283 に答える
0

可能であれば関数の外に保存したい$charsので、毎回作成する必要はありません (たとえば、ループで 1000 コードを生成したい場合)。

また、ここにあなたのためのショートカットがあります

$chars = range("A","Z");

于 2012-07-30T20:22:31.060 に答える