我有一个生成随机字符串的函数,它会生成1个以上的随机字符串,但是如何将它们分开
Function generatorstring($count) {
$karakter = '0123456789abcdefghijklmnopqrstuvwxyz';
$length = 7;
$randomString = '';
for ($i=0; $i <$count ; $i++) {
for ($ia = 0; $ia < $length; $ia++) {
$randomString .= $karakter[rand(0, strlen($karakter) - 1)];
}
}
return $randomString ;
}
echo generatorstring(3);
我期望这样的结果
'As6s8Xs',
'zE71jnM',
'ak9a71b',
但是,它只能产生1行随机字符串。
答案 0 :(得分:1)
您应分离代码以创建随机字符串,然后再调用3次。
将代码分隔为执行简单操作的小函数是良好实践编程的基础。
考虑:
function generatorstring($length = 7){
$karakter = '0123456789abcdefghijklmnopqrstuvwxyz';
$randomString = '';
for ($i = 0; $i < $length; $i++) {
$randomString .= $karakter[rand(0, strlen($karakter) - 1)];
}
return $randomString;
}
现在将其称为:
for ($i = 0; $i < 3; $i++)
$res[] = generatorstring();
或创建一个创建随机字符串数组的函数,如下所示:
function createRandomStringArray($count) {
for ($i = 0; $i < $count; $i++)
$res[] = generatorstring();
return $res;
}
然后您可以使用$res
或其他循环打印print_r
数组
答案 1 :(得分:0)
好吧,马上要解决的最大问题是,在for循环中使用相同变量的for循环。
第一个for循环将$ i建立为0,递增1。第二个for循环(内部)将$ i覆盖为0,并递增直到$ i等于$ length。 $ i现在为7。外部for循环看到$ i为7,大于$ count(3),因此外部for循环中断。
for($i=0; $i < $count; $i++) {
for($ia=0; $ia < $length; $ia++){
//do something
}
}
还请注意,这很丑陋,而且最好像@dWinder所述,将内部for循环放入其自己的函数中。