str_replace与数组一起使用时在PHP

时间:2015-05-15 15:59:16

标签: php str-replace

原谅我的问题措辞。可能是str_replace正在替换这些字符,并且我没有正确理解正在发生的事情的基本原理。不过这是我的问题。

我正在尝试使用str_replace在PHP中创建一个函数,用完整版本的名称替换缩写名称。问题是在某些情况下缩写是单字母缩写,这会导致问题。例如:

<?php
//Abreviated Set Names
function changer($string_to_replace){
    $ab_name   = array('A','APP','ANG',);
    $full_name = array('Alley Cat', 'Apples', 'Angela');
    return str_replace($ab_name, $full_name, $string_to_replace);
}

echo changer('APP');
?>

当我调用此函数并传递它时,我将返回"Alley Cat",这是我想要它做的。但是,如果我将其"APP"传递而不是返回"Apples",则会返回"Alley CatPP"。显然不是我想要的。我搜索了很多,但未能找到解决方案。任何帮助将不胜感激。

亲切的问候 酸杰克

1 个答案:

答案 0 :(得分:0)

Benoit(以及其他所有人)。

感谢您的回答。我还发现这段代码经过测试后效果很好。

<?php
$state = 'AVR';
echo convert_state($state);

function convert_state($key) {
    $a2s = array( 
        'A'=>'Apples',
        'AVR'=>'Abby Road'
    );
    $array = (strlen($key) <=3 ? $a2s : array_flip($a2s));
    return $array[$key];
}
?>