PHP:在数字前后分配随机字符?
如何在数字前后分配随机字符?当我运行脚本时,它会给我相同的随机字符 下面是一个示例代码:PHP:在数字前后分配随机字符?,php,random,output,implode,Php,Random,Output,Implode,如何在数字前后分配随机字符?当我运行脚本时,它会给我相同的随机字符 下面是一个示例代码: <?php function randomChar($length = 1) { $str = ""; $characters = array_merge(range('A','Z')); $max = count($characters) - 1; for ($i = 0; $i < $length; $i++) {
<?php
function randomChar($length = 1)
{
$str = "";
$characters = array_merge(range('A','Z'));
$max = count($characters) - 1;
for ($i = 0; $i < $length; $i++)
{
$rand = mt_rand(0, $max);
$str .= $characters[$rand];
}
return $str;
}
$test = "0123456789";
echo implode(randomChar(), str_split($test, 1));
?>
我想要的输出必须是:
Output: 0A1V2J3Y4Z5Q6S7O8R9
有人能帮我弄清楚吗?谢谢:)目前,您只获取一个随机字符并使用它将字符连接在一起-这意味着每次都将使用相同的字符 如果要为每个分隔符生成新字符,则需要将输入字符串传递到函数中,如下所示:
function insert_random_chars($str, $alphabet = "ABCDEFGHIJKLMNOPGRSTUVWXYZ")
{
// An array to hold the result
$result = array();
// The highest character index in the string
$max = strlen($alphabet) - 1;
// Loop the characters in the input string
foreach (str_split($str, 1) as $char) {
// Add the current character and a random character to the output array
array_push($result, $char, $alphabet[mt_rand(0, $max)]);
}
// Join the output array together
return implode('', $result);
}
echo insert_random_chars("0123456789");
:
0L1E2G3T4F5S6E7F8I9M
请注意,这段代码并不能完全满足您的需要,但它应该会向正确的方向推动;-) 目前,您仅获取一个随机字符并使用它将字符连接在一起-这意味着每次都将使用相同的字符 如果要为每个分隔符生成新字符,则需要将输入字符串传递到函数中,如下所示:
function insert_random_chars($str, $alphabet = "ABCDEFGHIJKLMNOPGRSTUVWXYZ")
{
// An array to hold the result
$result = array();
// The highest character index in the string
$max = strlen($alphabet) - 1;
// Loop the characters in the input string
foreach (str_split($str, 1) as $char) {
// Add the current character and a random character to the output array
array_push($result, $char, $alphabet[mt_rand(0, $max)]);
}
// Join the output array together
return implode('', $result);
}
echo insert_random_chars("0123456789");
:
0L1E2G3T4F5S6E7F8I9M
请注意,这段代码并不能完全满足您的需要,但它应该会向正确的方向推动;-) 目前,您仅获取一个随机字符并使用它将字符连接在一起-这意味着每次都将使用相同的字符 如果要为每个分隔符生成新字符,则需要将输入字符串传递到函数中,如下所示:
function insert_random_chars($str, $alphabet = "ABCDEFGHIJKLMNOPGRSTUVWXYZ")
{
// An array to hold the result
$result = array();
// The highest character index in the string
$max = strlen($alphabet) - 1;
// Loop the characters in the input string
foreach (str_split($str, 1) as $char) {
// Add the current character and a random character to the output array
array_push($result, $char, $alphabet[mt_rand(0, $max)]);
}
// Join the output array together
return implode('', $result);
}
echo insert_random_chars("0123456789");
:
0L1E2G3T4F5S6E7F8I9M
请注意,这段代码并不能完全满足您的需要,但它应该会向正确的方向推动;-) 目前,您仅获取一个随机字符并使用它将字符连接在一起-这意味着每次都将使用相同的字符 如果要为每个分隔符生成新字符,则需要将输入字符串传递到函数中,如下所示:
function insert_random_chars($str, $alphabet = "ABCDEFGHIJKLMNOPGRSTUVWXYZ")
{
// An array to hold the result
$result = array();
// The highest character index in the string
$max = strlen($alphabet) - 1;
// Loop the characters in the input string
foreach (str_split($str, 1) as $char) {
// Add the current character and a random character to the output array
array_push($result, $char, $alphabet[mt_rand(0, $max)]);
}
// Join the output array together
return implode('', $result);
}
echo insert_random_chars("0123456789");
:
0L1E2G3T4F5S6E7F8I9M
请注意,这段代码并不能完全满足您的需要,但它应该会向正确的方向推动;-) 调用
randomChar()
时,需要指定要生成的随机字符的长度。否则,它将只创建1个随机字符(默认值)
您正在使用的函数实际上将粘贴第二个参数的(数组)值,并将第一个参数作为“胶水”。因此,即使您的randomChar()
返回的字符超过1个,字符串也会对您要组合的每个数字重复
示例:0ABC2ABC。。。8ABC9
您需要做的是:
randomChar()
(如果只希望字符位于数字之间,则生成-1)函数randomChar($length=1)
{
$str=”“;
$characters=array_merge(范围('A','Z'));
$max=计数($characters)-1;
对于($i=0;$i<$length;$i++)
{
$rand=mt_rand(0,$max);
$str.=$characters[$rand];
}
返回$str;
}
$test=“0123456789”;
$length=strlen($test);
$合并='';
$random_char=randomChar($length);
对于($i=0;$i<$length;$i++)
{
$combined.=$test[$i]。$random_char[$i];
}
打印$combled。“\n”;
示例输出:调用
randomChar()
时,需要指定要生成的随机字符的长度。否则,它将只创建1个随机字符(默认值)
您正在使用的函数实际上将粘贴第二个参数的(数组)值,并将第一个参数作为“胶水”。因此,即使您的randomChar()
返回的字符超过1个,字符串也会对您要组合的每个数字重复
示例:0ABC2ABC。。。8ABC9
您需要做的是:
randomChar()
(如果只希望字符位于数字之间,则生成-1)函数randomChar($length=1)
{
$str=”“;
$characters=array_merge(范围('A','Z'));
$max=计数($characters)-1;
对于($i=0;$i<$length;$i++)
{
$rand=mt_rand(0,$max);
$str.=$characters[$rand];
}
返回$str;
}
$test=“0123456789”;
$length=strlen($test);
$合并='';
$random_char=randomChar($length);
对于($i=0;$i<$length;$i++)
{
$combined.=$test[$i]。$random_char[$i];
}
打印$combled。“\n”;
示例输出:调用
randomChar()
时,需要指定要生成的随机字符的长度。否则,它将只创建1个随机字符(默认值)
您正在使用的函数实际上将粘贴第二个参数的(数组)值,并将第一个参数作为“胶水”。因此,即使您的randomChar()
返回的字符超过1个,字符串也会对您要组合的每个数字重复
示例:0ABC2ABC。。。8ABC9
您需要做的是:
randomChar()
(如果只希望字符位于数字之间,则生成-1)