Изменение имен строк из списка

1

Выполнение этого в PHP

У пользователя есть аббревиатура для города, которая сохраняется в виде строки, например:

ANA BOS VAN

Они означают:
Anaheim
Boston
Vancouver

Я хочу, чтобы, когда я получаю вход/строку, он меняет имя строки на полное имя.

ANAAnaheim
BOSBoston
VANVancouver

Каков наилучший способ сделать это? Спасибо всем, очень признателен.

  • 1
    Лучший способ сделать это - сначала рассказать нам, какой язык вы используете.
  • 0
    Сожалею. Я использую PHP.
Теги:
string
arrays
rename

3 ответа

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);
  • 0
    это может привести к неопределенным ошибкам индекса
  • 0
    @shock_gone_wild нет, он возвращает NULL если индекс не существует.
Показать ещё 2 комментария
1

Ответ Peut22 ist работает, но я думаю, что лучше хранить пары в массиве, чтобы быть более удобным для обслуживания. Вы также можете получить этот массив из базы данных или файла конфигурации.

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

if(array_key_exists((string)$userinput, $names)) {
    echo $names[$userinput];
} else {
    echo "invalid";
}
  • 0
    не лучше ли использовать здесь функцию? или вам нужно использовать этот код каждый раз, когда вы хотите перевести аббревиатуру города в ваш код? а как насчет людей, пишущих в нижнем регистре?
0

Я думаю, вы получите хороший результат, используя переключатель, который возвращает полное имя, если вы хотите получить аббревиатуру, полной строки ввода, если имя не распознано.

Пример в псевдокоде:

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

EDIT: если вы используете php, тогда код будет выглядеть так:

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

}

  • 0
    Отлично! Большое спасибо. :)
  • 0
    Это почти правильно ... Ваш PHP-код будет производить неопределенные постоянные уведомления. Вы должны поместить корпуса переключателей в '' как переключатель 'ANA':
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню