我希望能够从一个随机缺少 2 个字母的单词中生成一个填充项

I would like to be able to generate a fill in the blank from a word missing 2 letters randomly

$word = "superman";

我希望能够从 $word 中的任何单词中随机选择 2 个字母,并在空白框中构建一个填充,以便我能够回答

举例说明如何随机选择 p 和 a su_erm_n 出现了,所以我会在第一个框中填写 p,在第二个框中填写 a 我猜是

$wordfinished = "su" . $fillinblank1 . "erm" . $fillinblank2 . "n";

if ($wordfinshed == $word) {
echo "congrats";
}
else{
echo "try again";
}

我只是在学习 php 我做了一些非常复杂的事情,但是在随机的事情上遇到了困难任何帮助都会帮助我学习这个

$word = "superman";
$size = strlen($word) -1;
$fillinblank1 = $word[rand(0,$size)];
$fillinblank2 = $word[rand(0,$size)];

$wordfinished = "su" . $fillinblank1 . "erm" . $fillinblank2 . "n";
echo $wordfinished;

输出:

sueermun

演示

http://ideone.com/Z66xsI

您可以使用 PHP 的 rand() 函数来 select 从 0 到您正在修改的单词的长度之间的随机数,并将该索引处的字符更改为某些内容否则

例如:

$str = "superman";
$str[rand(0, strlen($str)-1)] = "_";

例如,假设 rand() 函数输出值 3,我们将得到以下输出:

sup_rman

我们可以把它放在一个可以多次调用的函数中,以便在单词中制作多个空格space:

function addBlank($str){
    do{
        $index = rand(0, strlen($str)-1);
        $tmp = $str[$index];
        $str[$index] = "_";
    } while($tmp =! "_");

    return $str;
}

此函数接受一个字符串,每次调用后都会用 _ 替换字符串中的一个字母。每次调用都会导致多一个空白 space。变量 $tmp 在随机选择的索引处保存字符串的值,并检查它是否已经是空白 space,如果是,它会选择另一个索引来尝试替换。

所以为了付诸实践,我们可以多次调用上面的函数并将结果存储回一个变量,这里是示例输出:

$str = addBlank("superman");
//the value of $str is now sup_rman
$str = addBlank($str)
//the value of $str is now sup_r_an