我想根据其值用特定字符替换字符串的第一个字符,
A = 0
B = 1
C = 2
有没有一种基于规则的方法?总共我将有8条规则。
好吧,所以我正在编辑此代码以添加更多信息,因为我认为有些人不了解/不希望获得完整的图片而提供帮助...
我的字符串长度在5到10个字符之间 大写不会考虑到这一点,它不区分大小写 当前没有代码,我不确定执行此操作的最佳方法。我可以在子字符串上写一个if语句,但是我马上就知道效率很低。
下面是我期望的前后,我将这些示例简化了,但是我要做的只是根据其值用特定字符替换第一个字符。目前有8条规则,但将来可能会增加
INPUT OUTPUT
ANDREW 1NDREW
BRIAN 2RIAN
BOBBY 2OBBY
CRAIG 3RAIG
DAVID 4AVID
DUNCAN 4UNCAN
EDDIE 5DDIE
FRANK 6RANK
GEOFF 7EOFF
GIANA 7IANA
HAYLEY 8AYLEY
如您所见,很简单,但是有一种简单的方法来具体指定应替换的字符吗?
答案 0 :(得分:2)
假设所有规则都是针对单个字符的,例如在示例中,将它们编码为字典将是最容易的:
$rules = array('A' => 0, 'B' => 0 /* etc... */);
$str[0] = $rules[$str[0]];
答案 1 :(得分:0)
我想这就是你想要的。
<?php
$input = array('ANDREW','BRIAN','BOBBY','CRAIG','DAVID','DUNCAN','EDDIE','FRANK','GEOFF','GIANA','HAYLEY');
$array = range('A','Z');
$array = array_flip(array_filter(array_merge(array(0), $array)));
$output = [];
foreach($input as $k=>$v){
$output[] = $array[$v[0]].substr($v, 1);
}
print_r($output);
?>
输出:
Array (
[0] => 1NDREW
[1] => 2RIAN
[2] => 2OBBY
[3] => 3RAIG
[4] => 4AVID
[5] => 4UNCAN
[6] => 5DDIE
[7] => 6RANK
[8] => 7EOFF
[9] => 7IANA
[10] => 8AYLEY
)