1

我正在为一个客户工作,他希望生成格式为 [char][int][int] 的代码,如 T56、N78、J89 等...... 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

如果可以的话,您希望存储$chars在函数之外,因此不需要每次都创建它(例如,如果您想在循环中生成 1000 个代码)。

另外,这里给你一个捷径

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

于 2012-07-30T20:22:31.060 回答
0
function getRandStr()
{
    return sprintf("%s%02d", chr(mt_rand(65, 90)), mt_rand(0, 99));
}

编辑:根据评论更改,感谢@DaveRandom。

于 2012-07-30T20:24:30.283 回答