在数组之间交换值(php)

时间:2014-04-17 09:34:59

标签: php arrays

我有一个表单,我将在其中输入我放入数组中的三个单词之一,选择一个类别,当我按下发送时,我想要显示另一个数组中的另一个单词,显示的单词应该具有与表格中输入的单词相同的密钥。

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

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;出现等 任何帮助将不胜感激!

4 个答案:

答案 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

相关问题