我有一个表单,我将在其中输入我放入数组中的三个单词之一,选择一个类别,当我按下发送时,我想要显示另一个数组中的另一个单词,显示的单词应该具有与表格中输入的单词相同的密钥。
这是我在搜索了一段时间后到目前为止所尝试过的。
function wordswap() {
$word=array('hello','happy','yes');
$opp=array('bye','sad','no');
for($y=0;$y<=2;$y++){
if($text==$word[$y]){ //$text is the word entered in the form
echo "$opp[$y]";
}
}
}
当输入&#34;你好&#34;进入表格并按发送,我想&#34; bye&#34;出现等 任何帮助将不胜感激!
答案 0 :(得分:2)
在这里只使用映射而不是两个数组:
function wordswap($text) {
$wordMap = [
'hello' => 'bye',
'happy' => 'sad',
'yes' => 'no',
];
return empty($wordMap[$text]) ? null : $wordMap[$text];
}
答案 1 :(得分:0)
我认为问题在于你是echo
字符串 - 如果删除$opp[$y]
周围的双引号,那么它应该可以正常工作:)
function wordswap() {
$word=array('hello','happy','yes');
$opp=array('bye','sad','no');
for($y=0;$y<=2;$y++){
if($text==$word[$y]){ //$text is the word entered in the form
echo $opp[$y];
}
}
}
答案 2 :(得分:0)
有人发布了正确的解决方案,但看起来它已被删除。这里是: (链接:https://eval.in/137813)
function wordswap($input) {
$word=array('hello','happy','yes');
$opp=array('bye','sad','no');
$key = array_search($input, $word);
if (isset($opp[$key])) {
return $opp[$key];
}
return FALSE;
}
echo wordswap('hello');
答案 3 :(得分:-1)
您无需编写自己的功能。您只能使用标准库中的一个来完成:str_replace(array('hello','happy','yes'), array('bye','sad','no'), $text);
在这里你有演示:https://eval.in/137815