在php array

时间:2015-04-22 10:50:21

标签: php arrays replace strtr

我在php / mysql中创建了一个文字游戏,用户会看到一个随机选择的外语单词然后必须填写缺失的字母(这取决于字长有时随机删除或有时所有字母都是删除)从这些单词的英文版本到表单输入字段,后来通过表格提交到数据库进行检查......

下面的代码可以正常工作,除非一个单词具有多个特定字母的实例,例如单词“Bees”

例如,它将通过查找“e”,但然后用

替换字母“e”的两个实例
<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;

希望有道理!我仍然是一个新手php程序员,并坚持如何我可以实现这一点,很可能忽略了一个更简单的解决方案,我目前没有意识到...如果有人可以伸出援助之手给我一些指针,那将是很大的感谢!

0 个答案:

没有答案