更改列表中的字符串名称

Changing string names from a list

在 PHP

中执行此操作

我让用户输入一个城市的缩写,它被保存为一个字符串,例如:

ANA BOS VAN

这些代表:
Anaheim
Boston
Vancouver

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

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

解决此问题的最佳方法是什么?谢谢大家,不胜感激。

我想你会得到一个很好的结果,通过使用一个开关,如果你碰巧得到一个缩写,returns 全名,如果名称无法识别,则完整输入字符串。

伪代码示例如下:

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

编辑:如果您使用的是 php,代码将如下所示:

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

}

更新: 已修复,因此没有 "undefined index" - 请注意,以防您的 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);

Peut22 的答案有效,但我认为最好将这些对存储在数组中以便于维护。您也可以从数据库或配置文件中获取此数组。

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

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