2015-08-06 3 views
1

сделать это в PHPИзменение имен строк из списка

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

ANA BOS VAN

Подставка для:
Anaheim
Boston
Vancouver

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

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

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

+1

Лучший способ сделать это, прежде всего, рассказать нам, какой язык вы используете. –

+0

Извините. Я использую PHP. – rolomcflurry

ответ

0

обновление: исправлено, поэтому нет «неопределенного индекса» - уведомление в случае, если вы получили такой низкий error_reporting le Vel набор:

$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 no, он возвращает 'NULL', если индекс не существует. –

+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

Отлично! Большое спасибо. :) – rolomcflurry

+0

Это почти правильно ... Ваш PHP-код приведет к появлению неопределенных постоянных уведомлений. Вы должны поместить шкатулки переключателей в '' как переключатель 'ANA': –

+0

@shock_gone_wild Мой плохой ответ отредактирован. – Peut22

1

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

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

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

было бы не намного лучше использовать функцию здесь? или вам нужно использовать этот код каждый раз, когда вы хотите перевести аббревиатуру города в свой код? и как насчет людей, пишущих в нижнем регистре? –