我用下面的函数创建一个给定长度的随机字符串:
function generateRandomString($length) {
$characters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
$charactersLength = strlen($characters);
$randomString = '';
for ($i = 0; $i < $length; $i++) {
$randomString .= $characters[random_int(0, $charactersLength - 1)];
}
return $randomString;
}
这给了我一个结果,例如,当给它15作为长度时,aBcDEFghIJKlmNo
。
现在我也有一个变量,可以从1到10.000.000。为了简单起见,我们假设这个数字是12.345,但是解决方案需要对范围内的任何数字都有效。
我需要一个函数,它接受这个数字12.345,并将这些数字连续放入字符串aBcDEFghIJKlmNo
的随机位置,得到的结果例如'a1BcD23EFg4hIJ5KlmNo'。
function placeNumberInString($string, $number){
$new_string = '';
// I can't figure out what to do here...
return $new_string;
}
$result = placeNumberInString(aBcDEFghIJKlmNo, 12345);
echo $result;
3条答案
按热度按时间slhcrj9b1#
这本质上是
aBcDEFghIJKlmNo
堆栈和12345
堆栈之间的classic riffle shuffle的一次迭代。使用str_split()
将每个堆栈拆分为数组,因此您有:然后在这两个数组上执行shuffle:
比如:
siotufzp2#
如果你想保持数字中数字的顺序,你可以一次只建立一个新的字符串。
gojuced73#
可以从最后一个索引开始,按随机索引拆分字符串,然后插入数字