原谅我的问题措辞。可能是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"
。显然不是我想要的。我搜索了很多,但未能找到解决方案。任何帮助将不胜感激。
亲切的问候 酸杰克
答案 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];
}
?>