在数组之间交换值(php)


Swapping values between arrays (php)

我有一个表单,我将在其中输入我放置在数组中的三个单词中的一个,选择一个类别,当我按下send时,我希望显示另一个数组中的另一个单词,显示的单词应该与表单中输入的单词具有相同的键。

这是我搜索了一段时间后,到目前为止所尝试的。

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]";
        }
    }
}

当在表格中输入"你好"并按发送时,我希望"再见"出现等。任何帮助都将不胜感激!

这里只需使用一个映射而不是两个数组:

function wordswap($text) {
    $wordMap = [
        'hello' => 'bye',
        'happy' => 'sad',
        'yes'   => 'no',
    ];
    return empty($wordMap[$text]) ? null : $wordMap[$text];
}

我认为问题是你在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];
        }
    }
}

有人发布了正确的解决方案,但看起来它被删除了。它在这里:(链接: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');

您不需要编写自己的函数。您只能使用标准库中的一个:str_replace(array('hello','happy','yes'), array('bye','sad','no'), $text);
这里有演示:https://eval.in/137815