在php数组中用单词中的多个实例替换字母一次
我已经在php/mysql中创建了一个文字游戏,在这个游戏中,用户会看到一个随机选择的外语单词,然后必须填写缺失的字母(根据单词长度,有时会随机删除,有时会删除所有字母)从这些单词的英文版本输入表单输入字段,然后通过表单提交到数据库进行检查 下面的代码可以正常工作,除非一个单词有一个以上的特定字母实例,例如单词“Bees” 例如,它将遍历find“e”,然后将字母“e”的两个实例都替换为在php数组中用单词中的多个实例替换字母一次,php,arrays,replace,strtr,Php,Arrays,Replace,Strtr,我已经在php/mysql中创建了一个文字游戏,在这个游戏中,用户会看到一个随机选择的外语单词,然后必须填写缺失的字母(根据单词长度,有时会随机删除,有时会删除所有字母)从这些单词的英文版本输入表单输入字段,然后通过表单提交到数据库进行检查 下面的代码可以正常工作,除非一个单词有一个以上的特定字母实例,例如单词“Bees” 例如,它将遍历find“e”,然后将字母“e”的两个实例都替换为 <input type="text" name="question_1_letter_1" class
<input type="text" name="question_1_letter_1" class="inputs" maxlength="1" value="" />
or
<input type="text" name="question_1_letter_2" class="inputs" maxlength="1" value="" />
或
我真正想要的是,一旦找到第一个“e”,它就替换掉一个字母“e”的实例
<input type="text" name="question_1_letter_1" class="inputs" maxlength="1" value="" />
另一个实例被替换为
<input type="text" name="question_1_letter_2" class="inputs" maxlength="1" value="" />
这是主要代码
$one = "question_1_letter_$key1";
$two = "question_1_letter_$key2";
$three = "question_1_letter_$key3";
$four = "question_1_letter_$key4";
$string = Bees;
$selected_letter1 = B;
$selected_letter2 = e;
$selected_letter3 = e;
$selected_letter4 = s;
$Find = Array($selected_letter1, $selected_letter2, $selected_letter3, $selected_letter4);
$Replace = Array(
"`<input type=\"text\" name=\"$one\" class=\"inputs\" maxlength=\"1\" value=\"\" />`",
"`<input type=\"text\" name=\"$two\" class=\"inputs\" maxlength=\"1\" value=\"\" />`",
"`<input type=\"text\" name=\"$three\" class=\"inputs\" maxlength=\"1\" value=\"\" />`",
"`<input type=\"text\" name=\"$four\" class=\"inputs\" maxlength=\"1\" value=\"\" />`"
);
$New_string = strtr($string, array_combine($Find, $Replace));
echo $New_string;
$one=“问题1字母1”;
$two=“问题1字母2”;
$three=“问题1字母3”;
$four=“问题1字母4”;
$string=蜜蜂;
$selected_letter1=B;
$selected_letter2=e;
$selected_letter3=e;
$selected_letter4=s;
$Find=数组($selected\u letter1,$selected\u letter2,$selected\u letter3,$selected\u letter4);
$Replace=数组(
"``",
"``",
"``",
"``"
);
$New_string=strtr($string,array_combine($Find,$Replace));
echo$New_字符串;
希望这有意义!我仍然是一个非常初级的php程序员,一直在思考如何实现这一点,很可能忽略了一个更简单的解决方案,而我目前还不知道这个解决方案。。。如果有人能帮我一把,给我一些建议,我将不胜感激
strpos
可用于定位字符的第一个匹配项。感谢您抽出时间对其进行评论,我将继续了解strpos。。。虽然字母有时会从单词中随机删除,但字符串中的位置并不是恒定的,所以不太确定如何处理。。。是否有一种方法可以根据preg_replace(“/abc/”、“123”、$str,1)对其进行限制;