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() 打乱一个字符串。创造了所有可能的一种排列。

它实际上应该生成4 * strlen($_chars)字符......</p>

我假设你想要:

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

从文档中:

str_shuffle()洗牌一个字符串。创造了所有可能的一种排列。

您只需要从打乱的字符串中检索一个字符:

$_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 回答