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


$word = "superman";

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

示例一些如何随机选择P和A su_erm_n出现,所以我会用 p 填写第一个框,用我猜用表格填写第二个框

$wordfinished = "su" . $fillinblank1 . "erm" . $fillinblank2 . "n";
if ($wordfinshed == $word) {
echo "congrats";
}
else{
echo "try again";
}

只是在学习 php,我做过一些非常复杂的事情,但很难处理随机的东西,任何帮助都会帮助我学习这个

您可以使用

PHP 的 rand() 函数从 0 到您要修改的单词长度选择一个随机数,并将该索引处的字符更改为其他字符

例如:

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

例如,假设 rand() 函数输出的值为 3,我们最终会得到以下输出:

sup_rman

我们可以将其放在一个可以多次调用的函数中,以便在单词中制造多个空格:

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

此函数接受字符串,每次调用后将字符串中的字母替换为 _ 。 每次调用将产生一个额外的空格。 变量 $tmp 将字符串的值保存在随机选择的索引处,并检查它是否还不是空格,如果是,它会选择另一个索引来尝试替换。

所以为了把它放在实践中,我们可以多次调用上面的函数并将结果存储回变量中,下面是示例输出:

$str = addBlank("superman");
//the value of $str is now sup_rman
$str = addBlank($str)
//the value of $str is now sup_r_an
$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

相关内容

最新更新