从列表中更改字符串名称

时间:2015-08-06 06:19:19

标签: php arrays string rename

在PHP中执行此操作

我让用户输入城市的缩写,将其保存为字符串,例如:

if (author != null && author.equals(mUsername)) { llMessage.setGravity(Gravity.RIGHT | Gravity.END); }else{ llMessage.setGravity(Gravity.LEFT | Gravity.START); } ANA BOS

这些代表:
VAN
Anaheim Boston

我想要它,这样当我得到输入/字符串时,它会将字符串名称更改为全名

Vancouver - > ANA
Anaheim - > BOS
Boston - > VAN

最好的方法是什么?谢谢大家,非常感谢。

3 个答案:

答案 0 :(得分:1)

Peut22的答案正在发挥作用,但我认为最好将这些对存储在阵列中以便更加易于维护。您也可以从数据库或配置文件中获取此数组。

 $names = array(
    "ANA" => "Anaheim",
    "BOS" => "Boston",
    "VAN" => "Vancouver",
);

if(array_key_exists((string)$userinput, $names)) {
    echo $names[$userinput];
} else {
    echo "invalid";
}

答案 1 :(得分:0)

我认为通过使用一个开关可以得到一个好的结果,如果你发生了缩写,它将返回完整输入字符串的全名,如果名字不被识别的话。

伪代码中的一个例子是:

Switch string case "ANA" : string = "Anaheim" case "BOS" : string = "boston" end

编辑:如果你正在使用php,那么代码将如下所示:

switch ($i) {
case "ANA":
    $i="anaheim"
    break;
case "BOS":
    $i="boston"
    break;

}

答案 2 :(得分:0)

更新:已修复,因此没有"未定义的索引" - 如果您设置了这么低的error_reporting级别,请注意:

$names["ANA"] = "Anaheim";
$names["BOS"] = "Boston";
$names["VAN"] = "Vancouver";

function getFullName($input, $names)
{
    //turning all input into upper case letters:
    $input = strtoupper($input);

    //making sure input is maximum 3 characters long:
    $input = substr($input, 0, 3);

    if(!array_key_exists($input, $names))
    {
        return "*ERROR: Unknown City Abbreviation*";
    }
    else
    {
        return $names[$input];
    }
}

//usage:
$user_input = "bos";
echo getFullName($user_input, $names);